string decodeString(string s){
string res ="";
stack<string>strs;
stack<int>nums;int num =0;int len = s.length();for(int i =0; i < len; i++){if(s[i]>='0'&& s[i]<='9')num = num *10+ s[i]-'0';elseif((s[i]>='a'&& s[i]<='z')||(s[i]>='A'&& s[i]<='Z'))res += s[i];elseif(s[i]=='['){
nums.push(num);
num =0;
strs.push(res);
res ="";}else{int times = nums.top();
nums.pop();for(int j =0; j < times; j++)strs.top()+= res;
res = strs.top();
strs.pop();}}return res;}intmain(){
string s ="3[a2[c]]";
cout <<decodeString(s);return0;}