第一期训练题第三题

问题链接:https://vjudge.net/problem/CodeForces-266A

问题简述:第一行输入石头数,石头的颜色有三种,用’B’代表蓝色,'G’代表绿色,'R’代表红色,第二行输入石头的颜色,求最少需要取多少个石头使得任意两个相邻石头颜色不同。

程序说明:定义一个变量记录次数,用for循环和if语句判断相邻石头颜色是否相同,如果相同,则变量的值加1。

AC代码:

#include<string>
#include<iostream>
using namespace std;
int main()
{
	int n,m,c=0;
	cin >> n;
	char a[51];
	cin >> a;
	m = strlen(a);
	for (;m>1;m--)
	{
		if (a[m-1] == a[m - 2])
		{
			a[m-1] = 0;
			c++;
		}
	}
	cout << c << endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43973189/article/details/84885764