Stones on the Table——CF-266A

题目

Stones on the Table——CF-266AStones on the Table——CF-266A

题解

  1. 桌子上有n块相邻的石头,每块石头都有可能是红色、绿色或者蓝色
  2. 数一下需要从桌子上拿走的石头数,使得两块相邻的石头有不同的颜色
  3. 如果一排石头之间没有其他石头,就被认为是相邻的

Input

  1. 第一行包含整数n (1<= n <=50)——石头的数量
  2. 接下来一行包含字符串 s,它表示石头的颜色
  3. 我们将这一排石头从左到右编号1~n
  4. 如果第i个字符s是红色,那么它等于R;如果是绿色,等于G;如果是蓝色,等于B

Output

输出一个整数

思路

定义一个int型数据num并初始化为零,定义一个字符数组,将字符串输入到一个字符数组;通过一个for循环实现相邻字符的判断,若相邻字符相等(即石头颜色相同),则num自增一次;最后输出num的值即为需要拿走的石头数。

代码实现

#include<iostream>
using namespace std;
int main()
{
	int n,num=0; 
	cin >> n; 
	char s[100];
	cin >> s;
	for (int i = 0; i < n; i++)
	{
		if (s[i] == 'R' || s[i] == 'G' || s[i] == 'B')
		{
			if (s[i] == s[i + 1]) num++;
		}
		else return 0;
	}
	cout << num << endl;
}

完成

Stones on the Table——CF-266A