394. 字符串解码
题目链接:394. 字符串解码
代码如下:
class Solution
{
public:string decodeString(string s) {stack<string> strs; stack<int> nums; int num=0;string res;for(int i=0;i<s.size();i++){if(s[i]>=1&&s[i]<='9')//记录数字{num=num*10+s[i]-'0';//怕num是个大于10的数}else if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')){res+=s[i];}else if(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;}
};