394. 字符串解码
1 class Solution 2 { 3 public: 4 string decodeString(string s) 5 { 6 int len = s.size(); 7 int num = 0; 8 stack<int> numstack; 9 stack<string> strstack; 10 string cur = ""; 11 string result = ""; 12 for(int i=0; i<len; ++i) 13 { 14 if(isdigit(s[i])) num = 10*num + s[i] - '0'; 15 else if(s[i] == '[') 16 { 17 numstack.push(num); 18 strstack.push(cur);//同时放入,保持两个栈的大小相同 19 num = 0; 20 cur.clear(); 21 } 22 else if(isalpha(s[i])) cur += s[i]; 23 else if(s[i] == ']') 24 { 25 int k = numstack.top(); 26 numstack.pop(); 27 for(int j=0; j<k; ++j) strstack.top() += cur; 28 cur = strstack.top(); 29 strstack.pop(); 30 } 31 } 32 result = result + cur; 33 return result; 34 } 35 };
Mamba never out

浙公网安备 33010602011771号