两个字符串中最大相同的子串
1 /* 2 * 两个字符串中最大相同的子串。 3 * 4 * 5 * 6 * 思路: 7 * 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。 8 * 如果存在,短的那个字符串就是最大子串。 9 * 2,如果不是呢,那么就将短的那个子串进行长度递减的方式去子串,去长串中判断是否存在。 10 * 如果存在就已找到,就不用在找了。 11 */ 12 13 public class Test2 { 14 15 public static void main(String[] args) { 16 17 String s1 = "qwerabcdtyuiop"; 18 String s2 = "xcabcdvbn"; 19 String s = getMaxSubstring(s1, s2); 20 System.out.println("s=" + s); 21 22 } 23 24 private static String getMaxSubstring(String s1, String s2) { 25 String max = null, min = null; 26 max = (s1.length() > s2.length()) ? s1 : s2; 27 min = max.equals(s1) ? s2 : s1; 28 for (int i = 0; i < min.length(); i++) { 29 for (int x = 0, y = min.length() - i; y != min.length() + 1; x++, y++) { 30 String sub = min.substring(x, y); 31 if (max.contains(sub)) 32 return sub; 33 } 34 35 } 36 return null; 37 } 38 39 }