class Solution { public: string decodeString(string s) { int num = 0; string stradd = ""; stack<string> strstack; stack<int> intstack; for(int i=0;i < s.size();i++){ if(s[i] >= ‘0‘&&s[i] <= ‘9‘){ num = num*10 + s[i] - ‘0‘; } else if ((s[i] >= ‘a‘ && s[i] <= ‘z‘)||s[i] >= ‘A‘&&s[i] <= ‘Z‘){ stradd += s[i]; } else if(s[i] == ‘[‘){ strstack.push(stradd); intstack.push(num); stradd = ""; num = 0; } else if(s[i] == ‘]‘){ int times = intstack.top(); intstack.pop(); for(int j=0;j < times;j++){ strstack.top() += stradd; } stradd = strstack.top(); strstack.pop(); } } return stradd; } };
_用栈
原文:https://www.cnblogs.com/cunyusup/p/14258806.html