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;
}
};