Leetcode 394. 字符串解码

class Solution {
public:
    string decodeString(string s) {
        int num = 0;
        string stradd = "";
        stack<string> strstack;
        stack<int> intstack;
        
        for(int i=0;i < s.size();i++){
            if(s[i] >= '0'&&s[i] <= '9'){
                num = num*10 + s[i] - '0';
            }
            else if ((s[i] >= 'a' && s[i] <= 'z')||s[i] >= 'A'&&s[i] <= 'Z'){
                stradd += s[i];
            }
            else if(s[i] == '['){
                strstack.push(stradd);
                intstack.push(num);
                stradd = "";
                num = 0;
            }
            else if(s[i] == ']'){
                int times = intstack.top();
                intstack.pop();
                for(int j=0;j < times;j++){
                    strstack.top() += stradd;
                }
                stradd = strstack.top();
                strstack.pop();
            }
        }
        return stradd;
    }
};

_用栈

原文地址:https://www.cnblogs.com/cunyusup/p/14258806.html