目的
记录自己做过的有价值的代码
题目
如题,即查找两个字符串stringA和stringB中的最长公共子串。成功返回最大公共子串,不成功返回null。
代码
public static String iQueryMaxCommString(String stringA, String stringB) {
if(stringA==null || stringB==null){
return null;
}
if(stringA.length()<1 || stringB.length()<1){
return "";
}
if (stringA.contains(stringB)) {
return stringB;
}
else if (stringB.length() == 1) {
return "";
}
String leftSerach = iQueryMaxCommString(stringA, stringB.substring(0, stringB.length() - 1));
String rightSerach = iQueryMaxCommString(stringA, stringB.substring(1, stringB.length()));
return leftSerach.length() >= rightSerach.length() ? leftSerach : rightSerach;
}
重点
理解本题中最后三行里递归的精髓。