提交时,注意选择所期望的编译器类型。
思路:依次从字符串第i个字符开始,查找长度为j(1~n)的子串是否还存在与剩下(i+1到字符串尾)的字串中。说不清楚,看图。。。
代码: package 总决赛; import java.io.*; import java.util.Scanner; public class 重复模式 { static boolean find(String s,String c){//s中查找c int j = 0; for(int i=0;i<s.length();i++){ if(j == 0 && (s.length()-i)<c.length()) return false; if(s.charAt(i) == c.charAt(j)){ j++; if(j == c.length()) return true; }else{ j = 0; } } return false; } public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String s = sc.next(); int max = 0; for(int i=0;i<s.length()-1;i++){ for(int j=1;j<=s.length()-i;j++){ // System.out.println(i+" "+s.substring(i,i+j)); if(find(s.substring(i+1),s.substring(i,i+j))){ max = j>max?j:max; } } } System.out.print(max); } }