桌子上的石头


Submit solution

Points: 10
Time limit: 1.0s
Memory limit: 4M

Author:
Problem type
Allowed languages
C++

桌上的石头

桌子上有 n 块石头排成一行,每块石头的颜色可以是红色、绿色或蓝色。要求计算从桌子上拿走最少的石头,使得任意两个相邻的石头颜色都不同。如果一排石头中有两个石头紧挨着,则认为它们是相邻的。

输入

第一行包含一个整数 n (1 ≤ n ≤ 50),表示桌子上石头的数量。

第二行是一个字符串 s,表示石头的颜色。我们将把这些石头从左到右编号,从 1 到 n。字符串中的第 i 个字符 s[i] 为 "R" 表示第 i 块石头是红色的,"G" 表示是绿色的,"B" 表示是蓝色的。

输出

输出一个整数,表示至少需要拿走多少块石头,使得任何两个相邻的石头颜色不同。

输入 1
3  
RRG
输出 1
1
输入 2
5  
RRRRR
输出 4
4
输入 3
4  
BRBG
输出
0
解释

示例 1:石头的颜色是 "RRG"。为了让相邻的石头颜色不同,必须删除第 2 块红色石头,因此输出 1。
示例 2:石头的颜色是 "RRRRR"。为了让相邻的石头颜色不同,必须删除 4 块红色石头,剩下一个红色石头。因此输出 4。
示例 3:石头的颜色是 "BRBG"。相邻的石头颜色本来就不同,不需要删除任何石头,因此输出 0。


Comments

There are no comments at the moment.