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