andy6804tw
8/17/2016 - 7:32 AM

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=396 這題要算出最短的重複子字串的字母個數,要注意測資可能有空白行所以要重讀取,而且

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 月 */
}