leetcode-394. 字符串解码

这题作者的想法太简洁了,涉及好多细节,一般人想不到。

class Solution { public: string decodeString(string s) { stack<pair<int, string>> st; int num = 0; string res = ""; for(int i = 0; i < s.size(); i++){ if(s[i]>='0'&&s[i]<='9'){ num = num*10; num = num + (s[i]-'0'); }else if(s[i]=='['){ st.push(make_pair(num, res)); res = ""; num =0; }else if(s[i]==']'){ int n = st.top().first; string temp = st.top().second; st.pop(); for(int i = 0; i < n; i++){ temp = temp + res; } res = temp; }else{ res = res + s[i]; } } return res; } };

浙公网安备 33010602011771号