题意:
对字符串解码,数字+[字符串],数字表示重复次数。
思路:
想法很简单,递归解码方括号。
代码:
class Solution {
public:
int index = 0;
string decodeString(string s) {
return dfs(s, 0, 0);
}
string dfs(string& s, int st, int cnt) {
string ans = "";
for (int i=st; i<s.length(); ++i) {
if (s[i] == ']' || i == s.length()) {
index = i;
return ans;
}
else if (s[i] >= '0' && s[i] <= '9') {
int temp = 0;
while(s[i] >= '0' && s[i] <= '9') {
temp = temp * 10 + s[i] - '0';
i++;
}
string ss = dfs(s, i+1, 1);
for (int j=0; j<temp; ++j) {
ans += ss;
}
i = index;
}else ans += s[i];
}
return ans;
}
};
因为结束位置标识老是出bug,dbug了好久,最后加了一个全局变量。
有点懵。