L1-058 6翻了 (15 分)-PAT 团体程序设计天梯赛 GPLT
解题思路:遍历字符串,不是6字符的直接输出,出现6的时候,往后判断出现了几次6,进而决定是否替换字符串
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int len;
getline(cin,s);
for(int i=0;i<s.size();){
len=0;
if(s[i]!='6'){
cout<<s[i];
i++;
}
if(s[i]=='6'){
for(int j=i;j<s.size();j++){
if(s[j]=='6')
len++;
else
break;
}
}
if(len<=3){
for(int k=0;k<len;k++)
cout<<'6';
i=i+len;
}else if(len>3&&len<=9){
cout<<'9';
i=i+len;
}else if(len>9){
cout<<"27";
i=i+len;
}
}
}
运行结果: