一个字符串是另一字符串的循环子串当且仅当存在, 所有字符循环右移位后得到的新串,满足是的子串。
例如: abc
是 cefab
的循环子串。 (cefab
循环右移位得到abcef
, abc
是abcef
的子串)
一个串是完全循环串当且仅当对于它的任一子串, 都有是的循环子串 ( 为 的倒转, 如abc
reverse后 为cba
)。
给一个长度为的字符串, 判断它是不是完全循环串。
第一行一个正整数, 表示测试数据组数。
对于每一组数据,第一行一个正整数, 表示字符串的长度。接下来一行一个长度为的字符串. 仅包含小写字母。
对于每组测试数据,如果这个串是完全循环串, 输出YES
,否则输出NO
。每组测试数据之间输出换行。
对于所有数据 有 , , 。
2
4
ccca
11
eeaafbddfaa
YES
NO
1. 本道题目只需要语法知识就可以解决。
2. 任意子串是什么意思呢?
3. 如果一个子串包含另一个子串,那么我们是不是只需要求出大子串的合法情况,就可以推出小子串的合法情况。
4. 从大的子串向小的子串考虑 最大的子串是什么呢?