不给出题干了,直接上代码
#include<bits/stdc++.h> using namespace std; const int N = 1e6+10; typedef long long ll; string s; int cnt,cnts; int main() { getline(cin,s); int len=s.size(); for(int i=0;i<len;i++) { cnt=0; if(s[i]=='6') { while(s[i]=='6') { cnt++; i++; } if(cnt<=3) { for(int i=1;i<=cnt;i++) cout<<"6"; i--; } else if(cnt>3&&cnt<=9) { cout<<"9"; i--; } else { cout<<"27"; i--; } } else { cout<<s[i]; } } }
反思
一开始用 stringstream 流做的,只有13分,各种错误,后来改了,以后碰到连续的相同字母和连续的相同数字,都用while处理,既能记录个数,又能让下标下移,十分好用