【LeetCode 394】Decode String

注:七月在线听课笔记

s = "3[a]2[bc]", return "aaabcbc".
s = "3[a2[c]]", return "accaccacc".
s = "2[abc]3[cd]ef", return "abcabccdcdcdef".

参考代码有些问题,先记录下来,回头再思考。

class Solution {
public:
    string decodeString(string s) {
        stack<string> chars;
        stack<int> nums;
        string res;
        int num = 0;
        
        for(char c : s){
            if(isdigit(c))
                num = num * 10 + (c - '0');//????
            else if(isalpha(c)){
                res += c;
            }else if(c == '['){
                chars.push(res);
                nums.push(num);
                res = "";
                num = 0;
            }else {
                string temp = res;
                for(int i = 0;i < nums.top() - 1;++i)
                    res += temp;
                res = chars.top() + res;
                chars.pop();
                nums.pop();
            }   
        }
        return res;
    }
};
结果:通过


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值