Logo Daimayuan Online Judge

Home

时间限制:1 s 空间限制:1024 MB

#552. 循环子串

附加文件 统计

题目描述

一个字符串$S$是另一字符串$T$的循环子串当且仅当存在$k$, $T$所有字符循环右移$k$位后得到的新串$T'$,满足$S$是$T'$的子串。

例如: abccefab的循环子串。 (cefab循环右移$2$位得到abcef, abcabcef的子串)

一个串$P$是完全循环串当且仅当对于它的任一子串$H$, 都有$H_{reverse}$是$P$的循环子串 ($H_{reverse}$ 为 $H$的倒转, 如abc reverse后 为cba)。

给一个长度为$n$的字符串, 判断它是不是完全循环串。

输入格式

第一行一个正整数$t$, 表示测试数据组数。

对于每一组数据,第一行一个正整数$n$, 表示字符串的长度。接下来一行一个长度为$n$的字符串. 仅包含小写字母。

输出格式

对于每组测试数据,如果这个串是完全循环串, 输出YES,否则输出NO。每组测试数据之间输出换行。

数据范围

对于所有数据 有 $1 \leq t \leq 100$, $1 \leq n \leq 10^3$, $\sum{n} \leq 10^3$。

样例输入

2
4
ccca
11
eeaafbddfaa

样例输出

YES
NO

提示 选中可以查看

1. 本道题目只需要语法知识就可以解决。

2. 任意子串是什么意思呢?

3. 如果一个子串包含另一个子串,那么我们是不是只需要求出大子串的合法情况,就可以推出小子串的合法情况。

4. 从大的子串向小的子串考虑 最大的子串是什么呢?