好久都没做题了,昨天刚好有一场时间不晚的就来练习一下。
题意:给一个长度为n的字符串,让偶数长度的字符串a,b个数相等,也就是每连续两个字符a,b个数各占一个。现在给的这串字符,让你变成符合这种规律的字符串,你可以任意更改字符,把a换成b或者b换成a,输出最小换的次数,然后输出换后的字符串。
题解:很明确了,从头每两个字符的遍历,判断a=b是是否相等,相等就不符合要求,换的次数+1,其中一个字符更换成另外一个字符。
c++:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,ans=0;
string s;
cin>>n>>s;
for(int i=0; i<n; i+=2)
{
if(s[i]==s[i+1])
{
ans++;
if(s[i]=='a') s[i]+=1;
else s[i]-=1;
}
}
cout<<ans<<endl<<s<<endl;
return 0;
}