LeetCode:71.字符串解码
目录
1.字符串解码
1.字符串解码
这道题用两个栈来解决,一个存放结果,一个存放字符的重复次数
class Solution {
public:string decodeString(string s) {stack<string> ret;stack<int> number;ret.push("");int n = s.size(), i = 0;while(i < n){if(isdigit(s[i])){int sum = 0;while(i < n && isdigit(s[i]))sum = sum * 10 + (s[i++] - '0');number.push(sum);}else if(s[i] == '['){i++;string str;while(i < n && islower(s[i]))str += s[i++];ret.push(str);}else if(s[i] == ']'){int k = number.top(); number.pop();string str = ret.top(); ret.pop();string tmp;for(int i = 0; i < k; i++)tmp += str;ret.top() += tmp;i++;}else ret.top() += s[i++];}return ret.top();}
};