周期串(Periodic Strings)
如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。
输入一个长度不超过80的字符串,输出其最小周期。
【分析】
(分析过程附加在程序注释中)
用java语言编写程序,代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int T = input.nextInt();
for(int i = 0; i < T; i++) {
String s = input.next();
int len = s.length();
for(int j = 1; j < len; j++) {
//以周期为j的子串(前j个字符)
//以j为周期,说明字符串的长度是周期的倍数
if(len % j == 0) {
int k;
for(k = j; k < len; k++) {
//位置k后的字符与前j个字符循环判断
if(s.charAt(k) != s.charAt(k % j))
break;
}
if(k == len) {
if(i != 0)
System.out.print("\n");
System.out.println(j);
break;
}
}
}
}
}
}