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 }