题目:输入两个字符串,判断两者之间最大的公共子串,即重复最多的字符的长度;
1 首先,从用户输入得到两个字符串,并保证不管用户如何输入,代码都能固定一个长的和一个短的串;
Scanner sc = new Scanner(System.in); String s1= sc.nextLine(); String s2 = sc.nextLine(); //定义两个变量,固定长串和短串 String lStr=s1.length()>s2.length()?s1:s2; String sStr=s1.length()<s2.length()?s1:s2;
2 最终是要求重复最多的字符,那么可以想到遍历短串,一段一段截取,放到长串中去看是否包含,若包含的话,取最长的那个串
//遍历短串 从第一个字符 慢慢到最后的字符 for(int i=0;l<sStr.length();i++){ for(int j =i+1;j<=sStr.length();j++){ //一段段截取 String sub = sStr.subString(i,j); //匹配 if(lStr.contains(sub)){ max=sub.length()>max?sub.length:max; } } } //最后输出最多重复的字符的长度 System.out.println(max);