https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=396
這題要算出最短的重複子字串的字母個數,要注意測資可能有空白行所以要重讀取,而且每個答案之間要多空一行
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int n=Integer.parseInt(scn.nextLine()),i=0;
for(int num=0;num<n;num++){
String str;
while(true){
str=scn.nextLine();
if(!str.equals(""))
break;
}
StringBuilder sub = new StringBuilder();
for(i=0;i<str.length();i++){
sub.append(str.charAt(i));
if(str.length()%sub.length()!=0)
continue;
boolean b=true;
for(int j=0;j<str.length();j+=sub.length()){
if(!str.substring(j,j+sub.length()).equals(sub.toString())){
b=false;
break;
}
}
if(b)
break;
}
if(num!=0)
System.out.println();
System.out.println(i+1);
}
}
/*
題目:Q455 - Periodic Strings
作者:1010
時間:西元 2016 年 8 月 */
}