luogu#P16815. [蓝桥杯 2026 国 Python B] 糖果转盘

[蓝桥杯 2026 国 Python B] 糖果转盘

题目描述

小蓝有一个圆形糖果转盘。转盘上按顺时针方向放着 NN 颗糖果,第 ii 颗糖果的颜色用一个小写英文字母 SiS_i 表示。

小蓝要在两颗相邻糖果之间选择一个切口,将圆形转盘切开并展开成一排。展开后,糖果的排列顺序保持原来的顺时针顺序。切口共有 NN 个:可以切在第 ii 颗和第 i+1i + 1 颗糖果之间,其中 1i<N1 \le i < N;也可以切在第 NN 颗和第 11 颗糖果之间。

如果展开后的一排糖果中,任意两颗相邻糖果的颜色都不同,则称这个切口是漂亮的。

请你计算漂亮切口的数量。

输入格式

第一行包含一个整数 NN,表示糖果数量。

第二行包含一个长度为 NN 的字符串 SS,其中第 ii 个字符 SiS_i 表示第 ii 颗糖果的颜色。

输出格式

输出一行,包含一个整数,表示漂亮切口的数量。

6
ababab
6
5
aabcd
1
8
aaabbcde
0

提示

【样例说明 1】

圆环上每一对相邻糖果颜色都不同。无论从哪个切口切开,展开后的一排糖果中相邻颜色仍然都不同,因此 6 个切口都是漂亮的。

【样例说明 2】

圆环上只有第 1 颗和第 2 颗糖果颜色相同。只有切在这两颗糖果之间,展开后才不会保留这对相邻同色糖果,因此漂亮切口数量为 1。

【样例说明 3】

圆环上至少有两对相邻糖果颜色相同。一次切开只能断开其中一对相邻关系,因此展开后一定仍存在相邻同色糖果,没有漂亮切口。

【评测用例规模与约定】

对于 30%30\% 的评测用例,2N2002 \le N \le 200

对于 60%60\% 的评测用例,2N50002 \le N \le 5000

对于所有评测用例,2N2×1052 \le N \le 2 \times 10^5,且 SS 仅由小写英文字母组成。