STONE

Stones on the Table

There are n stones on the table in a row, each of them can be red, green or blue. Count the minimum number of stones to take from the table so that any two neighboring stones had different colors. Stones in a row are considered neighboring if there are no other stones between them.

Input
The first line contains integer n (1 ≤ n ≤ 50) — the number of stones on the table.

The next line contains string s, which represents the colors of the stones. We'll consider the stones in the row numbered from 1 to n from left to right. Then the i-th character s equals "R", if the i-th stone is red, "G", if it's green and "B", if it's blue.

Output
Print a single integer — the answer to the problem.

Examples
Input
3
RRG
Output
1
Input
5
RRRRR
Output
4
Input
4
BRBG
Output
0

求最少拿走几块石头使桌上相邻石头颜色不同,
将第一块石头与第二块进行比较(即比较字符串数组a相邻元素是否相同),若相同,则比较第一块和第三块石头...,若不同则比较第二块和第三块石头,逐层比较。

#include
using namespace std;
int main()
{
    int n, i, j=0,sum=0;
    char a[101];
    cin >> n>>a;
    for (i = 1;i < n;i++)
    {
        if (a[i] == a[j])
        {
            sum++;
        }
        else
        {
            j = i;
        }
    }
    cout << sum;
    return 0;
}

你可能感兴趣的:(STONE)