算法1
个人觉得第二种写法更好一点,能想到
C++ 代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
string s,res;
cin>>s;
for(int i=0;i<s.size();i++){
if(i+1<s.size() && s[i+1]<='9'){
int k=s[i+1]-'0';
while(k--)res+=s[i];
i++;
}
else{
res+=s[i];
}
}
cout<<res<<endl;
return 0;
}
算法2
C++ 代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
string s,res;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'){
int k=s[i]-'0';
// while(k--)cout<<s[i-1];//这里如果写成--k就符合循环k-1次!!!
for(int j=0;j<k-1;j++)
{
cout<<s[i-1];
}
}
else{
cout<<s[i];
}
}
return 0;
}