2023年码题杯初赛 小码哥的英语 题型:模拟

103 阅读1分钟

码题集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;
}