classSolution{public:
string decodeString(string s){int num =0;// 记录每次遍历的数字
string res ="";// 记录每次遍历的字符
stack<int> nums;// 数字栈
stack<string> str;// 字符栈for(int i =0;i<s.size();i++){if(s[i]>='0'&& s[i]<='9')
num = s[i]-'0';elseif((s[i]>='a'&& s[i]<='z')||(s[i]>='A'&& s[i]<='Z'))
res = res + s[i];elseif(s[i]=='['){
nums.push(num);
num =0;
str.push(res);
res ="";}elseif(s[i]==']'){int times = nums.top();
nums.pop();for(int i =0;i<times;i++){
str.top()+= res;}
res = str.top();
str.pop();}}return res;}};