需求:两个字符串的最大相同子串。
"dfdsfacctvjjdfkj"
"dadcctvlklk"
思路:
1.以短的字符串为主。
到长的字符串中去判断是否存在,如果存在,已找到。
2.如果没有找到。将短的字符串的长度递减获取子串继续到长的串中查找。只要找到就结束。
3.没有找到就返回空。
----------------------------------------------------------------------
public class test3 {
public static void main(String[] args) {
String s1 = "dfdfsadfcctvkljkl";
String s2 = "adfqcctvmkljhkl";
String maxSub = getMaxSubString(s1,s2);
System.out.println("maxSub="+maxSub);
}
public static String getMaxSubString(String s1, String s2) {
//确定哪个长那个短
String longStr,shortStr;
longStr = s1.length()>s2.length()?s1:s2;
shortStr = s1.equals(longStr)?s2:s1;
// System.out.println(longStr);
// System.out.println(shortStr);
//对短的字符串操作,从短串中取子串,到长字符串中去判断是否存在。
for(int x = 0; x<shortStr.length();x++){
for(int y = 0,z = shortStr.length()-x;z<=shortStr.length();y++,z++){
String temp = shortStr.substring(y, z);
if(longStr.contains(temp)){
return temp;
}
}
}
return null;
}
}
关注我的微信公众号,观看更多精彩内容: