抽象代码第二弹(double u)
作者:
TANTN
,
2023-08-03 19:32:13
,
所有人可见
,
阅读 123
#include<bits/stdc++.h>
using namespace std;
int n,t,ti=0;
char s[100005],s1[2000005];
int main(){
cin>>t;
for(int k=1;k<=t;k++){
cin>>n>>s;
int lens=strlen(s),len=0;
for(int i=0;i<lens;i++){
if(s[i]=='w'){
s1[len++]='u';
s1[len++]='u';
}else if(s[i]=='m'){
s1[len++]='n';
s1[len++]='n';
}else{
s1[len++]=s[i];
}
}
ti=len-n;
if(ti==0){
for(int i=0;i<len;i++){
cout<<s1[i];
}
cout<<endl;
continue;
}
int au=0,an=0,i=0;
while(ti){
if(s1[i]=='n'){
if(au==1){
cout<<'n';
au=0;
}
an++;
if(an==2){
cout<<'m';
ti--;
an=0;
}
}else if(s1[i]=='u'){
if(an==1){
cout<<'u';
an=0;
}
au++;
if(au==2){
cout<<'w';
ti--;
au=0;
}
}else if(au==1||an==1){
cout<<s1[i-1],s1[i];
an=au=0;
}else{
cout<<s1[i];
}
i++;
}
while(i<len){
cout<<s1[i++];
}
cout<<endl;
}
return 0;
}
#include<bits/stdc++.h> using namespace std; int n,t; char s[100005]; int main(){ cin>>t; while(t--) { cin>>n>>s; int len=0; string s1; for(int i=0;s[i];i++){ if(s[i]=='w'){ s1+="uu"; }else if(s[i]=='m'){ s1+="nn"; }else{ s1+=s[i]; } } len=s1.size(); if(len==n){ cout<<s1; cout<<endl; continue; } for(int i=0;s1[i];i++) { if(s1[i]=='n'&&s1[i+1]=='n'&&s1[i+1]){ if(len>n) cout<<'m',len--; else cout<< "nn"; i ++ ; }else if(s1[i]=='u'&&s1[i+1]=='u'&&s1[i+1]){ if(len>n) cout<<'w',len--; else cout<<"uu"; i++; }else{ cout<<s1[i]; } } cout<<endl; } return 0; }
还得是你啊~
抽象完成,原神,启动!
#include<bits/stdc++.h> using namespace std; int n,t; string s,s1; int main(){ cin>>t; while(t--){ cin>>n>>s,s1=""; for(int i=0;s[i];i++) if(s[i]=='w') s1+="uu"; else if(s[i]=='m') s1+="nn"; else s1+=s[i]; int len=s1.size(); if(len==n) cout<<s1; else for(int i=0;s1[i];i++) if(s1[i]=='n'&&s1[i+1]=='n'&&s1[++i]) if(len>n) cout<<'m',len--; else cout<<"nn"; else if(s1[i]=='u'&&s1[i+1]=='u'&&s1[++i]) if(len>n) cout<<'w',len--; else cout<<"uu"; else cout<<s1[i]; cout<<endl; } }