AcWing 865. 字符串展开
原题链接
简单
作者:
孑然
,
2020-02-19 11:55:55
,
所有人可见
,
阅读 888
C++ 代码
#include <iostream>
#include <string>
using namespace std;
string s="";
string f(int &i){
string ans="";
while(i < s.length()){
if(s[i] == '#'){
i++;
return ans;
}
else if(s[i]>='0' && s[i]<='9'){
int sum=0;
while(s[i]>='0' && s[i]<='9'){
sum = sum*10+(s[i++]-'0');
}
i++;
string ss = f(i);
for(int j=0;j < sum;j++)
ans+= ss;
}
while((s[i]<'0' || s[i]>'9') && s[i] !='#' && i<s.length())
ans += s[i++];
}
return ans;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>s;
int i=0;
cout<<f(i)<<endl;
return 0;
}