码题集OJ-小码哥的英语 (matiji.net)
思想 因为只有A,B两种元素,并且两个元素不能相邻,所以1我们最终只能把字符串变为:
第一种:ABABAB 第二种:BABABA
这两种形式,我们只需要判断变为哪种形式需要修改的次数最少即可。 假如第一种形式的长度是1en,变为第一种形式需要修改的次数为ans,那么变为第二种形式需要修改的次数就是len-ans。
#include<bits/stdc++.h>
using namespace std;
int ans;
int main()
{
int n; cin >> n;
for (int i = 0; i < n; i++)
{
string s; cin >> s;
int len = s.size();
ans = 0;
for (int i = 0; i < s.size(); i++)
{
if (i % 2 == 0 && s[i] == 'B')ans++;
if (i % 2 == 1 && s[i] == 'A')ans++;
}
cout << min(ans, len - ans)<<endl;
}
return 0;
}