算法1
(嵌套问题,DFS或栈)
C++ 代码
#include<iostream>
using namespace std;
string s;
int u;
string dfs(){
string res;
while(u < s.size()){
auto cur = s[u];
if(cur == '#') return res;
if(isdigit(cur)){
int k = 0;
while(s[u] != '%'){
k = k * 10 + s[u] - '0';
u ++;
}
u ++;
string s1 = dfs();
while(k --) res += s1;
}
else res += cur;
u ++;
}
return res;
}
int main(){
cin >> s;
cout << dfs() << endl;
return 0;
}