问题描述:用G代表绿色,R代表红色,B代表蓝色,输入一排字符代表一列各种颜色的石头,第一行输入n代表有n个石头(1<n<50);第二行输入字符,问至少要抽出几块石头才能使相邻石头颜色不同。(两块石头间没有其他石头即为相邻)
问题分析:从左往右,每有相邻两块相同即加一;可将石头存入数组中,通过指针对字符逐一访问。
解答:
#include <iostream>
using namespace std;
int main()
{
int i, j=0, n;
cin >> n;
char*p = new char[50];
cin >> p;
for (i = 1; i < n; i++)
{
if (*(p + i - 1) == *(p + i))
j++;
}
cout << j;
}在这里插入代码片