描述题目:点击打开链接
/*
思路:先求取字符串长度,而周期串长度必然是字符串长度的因数。
所以不是字符串长度的因数都可以跳过,而是因数就都尝试。
例如:Str="abcabc"字符串长度为6,假定周期串为第一个字符a(Str[0]),长度为1,
判断时以周期串长度处判断,也就是1(Str[1]字符b),
而匹配时发现a(Str[0])和b(Str[1])不匹配,便结束进行下一次匹配。
而ab长度为2,判断时从2处开始判断,a(Str[0])和c(Str[2])
第一个字母就不匹配,便结束进行下一次匹配。
而abc长度为3,判断时从3处开始判断,a(Str[0])和a(Str[3])成功,接下去匹配
b(Str[1])和b(Str[4]),c(Str[2])和c(Str[5])...依次类推直到匹配成功,
然后输出周期串长度便可。
Ps:假定周期串abca长度为4,而主串长度为6,由于4不是6的因数,
那必然不可能是周期串,所以直接跳过。
*/
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
for(int i=0;i<n;++i)
{
String str=cin.next();
int len=str.length();
for(int j=1;j<=len;++j)
{
if(len%j!=0)continue;
int k;
for(k=j;k<len;++k)
if(str.charAt(k)!=str.charAt(k%j))
break;
if(k==len)
{
System.out.println(j);
break;
}
}
if(i<n-1)System.out.println();
}
}
}