我们定义,如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就叫做周期为k的串。
例如:
字符串’abcabcabcabc’周期为3,因为它是由4个循环’abc’组成的。它同样是以6为周期(两个重复的’abcabc’)和以12为周期(一个循环’abcabcabcabc’)。
写一个程序,可以测定一个字符串的最小周期。
依次遍历可能周期,判断串长度是否能整除周期,再截取第一个周期串合并为串的长度,判断合并串与串是否相同,相同则输出结束
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
String z = sc.next();
int len = z.length();
for (int i = 1; i <= len; i++) {
if (len%i==0) {
String t = z.substring(0,i);
String tt = "";
for (int j = 0; j < len/i; j++) {
tt+=t;
}
if (tt.equals(z)) {
System.out.println(i);
break;
}
}
}