题意:求修改的最小个数,使得这个偶数串的每个前缀串(这个前缀串是从第一个开始的,并且到结尾总个数为偶数个)中a的个数b的个数;
比如:
那么他有两个偶数长度的前缀串,且a的个数b的个数;所以不需要修改;
又比如:
最后两个就需要修改其中一个;
所以很明显,直接枚举如果相邻的相同,那就改动一个,下标跳跃值为+2;
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
string s;
cin>>s;
int ans=0;
for(int i=0;i<s.length();i+=2){
if(s[i]==s[i+1]){
s[i]='a';
s[i+1]='b';//这里以防起见,改了两个
ans++;
}
}
cout<<ans<<endl<<s;
return 0;
}