- public class StringTest2 {
- public static void main(String[] args){
- String s1 = "qwerabcdtyuiop";
- String s2 = "xcabcdvbn";
- String s = getMaxSubstring(s1, s2);
- System.out.println("s = " + s);
- }
- public static String getMaxSubstring(String s1, String s2){
- String max = null, min = null;
- //max存入较长的字符串,min存入较短的字符串
- max = (s1.length() > s2.length())? s1:s2;
- min = max.equals(s1)? s2:s1;
- //将短的字符串依长度递减,每次递减都判断max中是否包含该长度的各种字串组合(通过a++,b++实现)。
- for(int i = 0; i < min.length(); i ++){
- //a代表子串的开始位置,b代表子串的结束位置。
- for(int a = 0, b = min.length()-i; b != min.length()+1; a++,b++){
- String sub = min.substring(a,b); //获得子串
- if (max.contains(sub)) //判断max中是否包含子串
- return sub;
- }
- }
- return null;
- }
- }
复制代码
|
|