#include<iostream>
#include<string>
#include<stack>
#include<algorithm>
using namespace std;
string op(int num, string& str) {
string temp;
for (int i = 0; i < num; ++i) {
temp += str;
}
return temp;
}
int main() {
string s;
getline(cin, s);
stack<char> st;
string res;
for (char c : s) {
if (c != ']') {
st.push(c);
}
else
{
string str;
while (!st.empty() && (st.top()>'9'||st.top()<'0')) {
if (st.top() == '[') {
st.pop();
break;
}
str += st.top();
st.pop();
}
int num = 0;
while (!st.empty() && st.top() >= '0' && st.top() <= '9') {
int a = st.top() - '0'; cout << "a=" << a<<' ';
num *= 10;
num+= a; cout << "num=" << num << endl;
st.pop();
}
//reverse(res.begin(), res.end());
res =str+res;
res = op(num, res); cout << res<<' ' << num << endl;
}
}
cout << res << endl;
//1[D3[C2[B1[A]]]] 输出DCBABACBABACBABA;
}
标签:string,temp,int,报文,解压缩,st,str,机试,include
From: https://www.cnblogs.com/chunbai11/p/16882352.html