问题链接: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;
}