最长公共子串2
怕下次找不到了?快快点关注鼓励一下嘛~ (╹▽╹) ~
题目:
编写函数,获取两段字符串的最长公共子串的长度,例如:
S1= GCCCTAGCCAGDE
S2= GCGCCAGTGDE
这两个序列的最长公共子串是GCCAG,也就是说返回值
解答:
public class LongeSub {
public String subStr(String s1,String s2){
//用来存公共子串
String maxstr = "" ;
//用来存公共子串长度
int length = 0;
String s;
//默认s1为较短的字符串
if (s1.length()>s2.length()){
s = s1;
s1 = s2;
s2 = s;
}
//从s1的第一个字符开始截取
for (int start=0;start<s1.length();start++){
for (int end=start+1;end<s1.length();end++){
String substring = s1.substring(start,end);
//然后看s2中有无此子串
if (s2.contains(substring)){
//记录最大长度和最长子串
if (substring.length()>length){
length = substring.length();
maxstr = substring;
}
}
}
}
return maxstr;
}
public static void main(String[] args) {
LongeSub longeSub = new LongeSub();
String s1 = "GCCCTAGCCAGDE";
String s2 = "GCGCCAGTGDE";
System.out.println(longeSub.subStr(s1, s2));
}
}
如果文章内容对您有帮助的话,欢迎点赞加关注哦!比心