#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
#include<unordered_map>
#include<queue>
#include<set>
#include<iomanip>
#include<cmath>
#include<string>
string s;
#define N 100000
int ZH(int &t,int k)
{
for (int i = k; i < s.size(); i++) //算数字
{
if (48 <= s[i] && s[i] <= 56)
{
t= t * 10 + s[i] - '0';
//cout<<1<<' ';
}
else
{
return i;
}
}
}
int KG(int t)
{
int sum=1;
int mid=1;
int l = 0;
string d;
for (int i = t; i < s.size(); i++)
{
if (s[i] == '[')l++;
else if (48 < s[i] && s[i] < 56)
{
int t=0;
i = ZH(t,i);
i--;
sum *= t;//总长
}
else if (s[i] >= 65&&s[i]!=']')d += s[i]; //字母
else if (s[i] == ']') {
mid = i;
break;
}
}
for (int i = 1; i <= sum; i++)
cout << d;
return mid + l; //下一个起始点
}
int main()
{
cin >> s;
for (int i = 0; i < s.size(); i++)
{
if (65<=s[i]&&s[i]<=90)
{
cout << s[i];
}
else
{
i=KG(i);
}
}
return 0;
}
有佬看看哪个地方有问题吗,没看出来,试错点了也一样的呀