STONE

2018-12-09  本文已影响0人  李耳_9992

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<iostream>
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;
}
上一篇下一篇

猜你喜欢

热点阅读