參考資訊:
https://www.cnblogs.com/grandyang/p/5849037.html
題目:

解答:
class Solution {
public:
string decodeString(string s) {
int v = 0;
string r;
stack<int> num;
stack<string> buf;
for (int i = 0; i < s.size(); i++) {
if ((s[i] >= '0') && (s[i] <= '9')) {
v = (v * 10) + (s[i] - '0');
continue;
}
switch (s[i]) {
case '[':
num.push(v);
buf.push(r);
r.clear();
v = 0;
break;
case ']':
for (int j = num.top(); j > 0; j--) {
buf.top() += r;
}
r = buf.top();
num.pop();
buf.pop();
break;
default:
r += s[i];
break;
}
}
return r;
}
};