题目:桌子上有不超过五十块石头,石头可以是红蓝绿三色,拿出一定数量石头排列,求拿走最少数量的石头可使相邻的石头颜色不同
题解:先输入石头总数,再输入石头排列的颜色,建立循环查找,如果某块石头和后一块石头颜色相同,则需取走,取走数量增加一块,最后输出该数量
#include <iostream>
using namespace std;
int main()
{
int n,b=0;
cin >> n;
int *a=new int [n];
char *c=new char[n];
for (int i = 0; i < n; i++)
{
a[i] = i + 1;
cin >> c[i];
}
for (int i = 0; i < n; i++)
{
if (c[i] == c[i + 1]) b++;
}
cout << b;
}