版权声明:by ruohua3kou https://blog.csdn.net/ruohua3kou/article/details/88967595
看到嵌套就想到递归… 大问题化小问题
class Solution
{
public:
string decodeString(const string &s, int &i)
{
string res;
while (i < s.length() && s[i] != ']')
{
if (isdigit(s[i]))
{
int count = 0;
while (isdigit(s[i]) && i < s.length())
count = 10 * count + (s[i++] - '0');
++i; // jump over [
string temp = decodeString(s, i);
++i; // jump over ]
while (count > 0)
{
res += temp;
--count;
}
}
else
res += s[i++];
}
return res;
}
string decodeString(string s)
{
int i = 0;
return decodeString(s, i);
}
};