UVA 455题参考思路(C++版)
题目重述
如果字符串可以通过连接另一个长度为k的字符串的一个或多个重复来形成,则称字符串具有周期k。 例如,字符串“abcabcabcabc”具有周期3,因为它是由字符串“abc”的4次重复形成的。 它还有周期6(两次重复的“abcabc”)和周期12(一次重复的“abcabcabcabc”)。 编写程序来读取字符串并确定其最小周期。
INPUT
输入输入文件的第一行将包含一个整数N,表示程序将测试的测试用例数后跟一个空行。 每个测试用例将包含一个最多80个非空字符的单个字符串。 两个连续输入将用空行分隔。
OUTPUT
输出一个整数,表示每个输入的输入字符串的最小周期。 两个连续输出由空行分隔。
SAMPLE INPUT
1
HoHoHo
SAMPLE OUTPUT
2
参考题解
题目要求输出最小周期,我们可以想象将一串字符首尾相接形成一个圆环,考虑一下,如果我们去转动这个圆环,不难想到,只需转动该字符串的一个最小周期即可使该圆环恢复原位。接下来我们用代码来实现这个过程。
//周期串,使用环形串法求解
#