ACM训练题-第三题-Stones on the Table

Time limit2000 msMemory limit262144 kB
total:Time 62ms Memory 12kB
here 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

问题链接:https://vjudge.net/problem/CodeForces-266A
问题简述:桌子上连续有n块石头,每块都有红色,绿色或蓝色。计算从桌子上取下的最小石头数量,这样任何两块相邻的石头都有不同的颜色。如果它们之间没有其他石头,则连续的石头被认为是相邻的。
程序说明:就是计算和之后的相比有多少重复。
AC通过的C++语言程序如下:

#include 
using namespace std;
int main()
{
	char c[51];
	int j, ans, i;
	while (cin >> j)
	{
		cin >> c;
		ans = 0;
		for (i = 0; i < (j - 1); i++)
		{
			if (c[i] != c[i + 1])
				ans++;
		}
		cout << (j - 1 - ans) << endl;
	}
	return 0;
}

你可能感兴趣的:(acm)