LeetCode 字符串解码394

1.题目描述

 2.代码

class Solution {
public:
    string decodeString(string s) {
        stack<string>strings;
        stack<int>nums;
        string res = "";
        int times = 0;

        for (int i = 0; i < s.size(); i++)
        {
            if (s[i] == '[')
            {
                strings.push(res);
                nums.push(times);
                //重置
                res = "";
                times = 0;
            }
            else if (s[i] == ']')
            {
                int cur_times = nums.top();
                nums.pop();
                string cur_str = "";
                for (int j = 0; j < cur_times; j++)
                {
                    cur_str += res;
                }
                cur_str = strings.top() + cur_str;
                strings.pop();
                res = cur_str;
            }
            else if (s[i] >= '0' && s[i] <= '9')
            {
                times = 10 * times + s[i] - '0';
            }
            else
            {
                res += s[i];
            }
        }

        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_33457548/article/details/100622990