题目4:获取两个字符串中最大相同子串。
比如:
str1 = "abcwerthelloyuiodef“;str2 = "cvhellobnm"
提示:将短的那个串进行长度依次递减的子串与较长的串比较。
(我接下来的方法比较通俗易懂,但动态规划或许更好)
/*
*
* 题目4:获取两个字符串中最大相同子串。比如:
str1 = "abcwerthelloyuiodef“;str2 = "cvhellobnm"
提示:将短的那个串进行长度依次递减的子串与较长的串比较
* */
public class getMaxSameSubString {
public static void main(String[] args) {
String s1 = "abcwerthelloyuiodef";
String s2 = "cvhellobnm";
String s3 = getMaxSameSubString(s1,s2);
System.out.println(s3);
}
public static String getMaxSameSubString(String s1,String s2) {
if (s1 != null || s2 != null) {
//比较长度
String maxStr=(s1.length()>s2.length())?s1:s2;
String minStr=(s1.length()<s2.length())?s1:s2;
//设置初始长度
int len=minStr.length();
//循环判断(将短的那个串进行长度依次递减的子串与较长的串比较)
for (int i = 0; i < len; i++) {
for (int x=0,y=len-i;y<=len;x++,y++){
if(maxStr.contains(minStr.substring(x,y))){
return minStr.substring(x,y);
}
}
}
}
return null;
}
}
结果: