旋转分块(Rotate)

题目描述

乐柠兔得到一个长度为 nn 的字符串 ss,字符串只由小写英文字母组成。

定义一个字符串中的分块为一段连续相同字符,并且不能再向左或向右扩展的子串。例如,字符串 aabcccdaa 中共有 55 个分块:aabcccdaa

乐柠兔可以对字符串进行任意次循环旋转。一次循环旋转可以选择一个位置 ii,将原字符串

s1s2sns_1s_2\cdots s_n

变为

si+1si+2sns1s2sis_{i+1}s_{i+2}\cdots s_ns_1s_2\cdots s_i。

例如,字符串 abcde 可以通过选择 i=3i=3 旋转成 deabc

旋转完成后,乐柠兔的得分等于最终字符串中的分块数量。

请你求出乐柠兔通过循环旋转能够得到的最大得分。

输入格式

第一行包含一个整数 TT,表示测试数据组数。

接下来依次给出 TT 组数据。对于每组数据:

第一行包含一个整数 nn

第二行包含一个长度为 nn 的字符串 ss

输出格式

对于每组数据,输出一行一个整数,表示循环旋转后能够得到的最大分块数量。

样例

样例输入 #1

4
4
abcd
4
abbc
4
abba
6
abbccc

样例输出 #1

4
4
3
4

样例解析

对于第一组数据,abcd 本身就有 44 个分块,并且字符串长度为 44,分块数量不可能超过 44

对于第二组数据,abbc 可以旋转为 bcab,此时分块为 bcab,共有 44 个分块。

对于第三组数据,abba 无论怎样旋转,最多只能得到 33 个分块,例如旋转为 baab,分块为 baab

数据范围与约定

对于 100%100\% 的数据,保证 1T5001\le T\le 5001n1001\le n\le 100ss 只由小写英文字母组成。

测试点编号 分值 TT \le nn \le 特殊性质
1-2 10 2020 1010
3-5 15 100100 2020 特殊性质 A
6-8 5050 特殊性质 B
9-12 20 200200 100100 特殊性质 C
13-16 500500
17-20
  • 特殊性质 A:保证每个字符串中所有字符都相同。
  • 特殊性质 B:保证每个字符串中相邻两个字符都不同。
  • 特殊性质 C:保证每个字符串只包含字符 ab