测试leader因掌握的算法之求最大公共子串
//求两个字符串的最大公共子串
public static String MaximumSubString(String s1,String s2){
String longest = "";
String substring = "";
if(s1.length()>s2.length()){ //s1为两个串中的短串;s2为长串
String temp = s1;
s1 = s2;
s2 = temp;
}
int len = s1.length();
ok:for(int i=len;i>0;i--){
for(int j=0;j<len-i+1;j++){
substring = s1.substring(j,j+i);
if(s2.indexOf(substring)!=-1){
longest = substring;
break ok; //只要一找到最大子串,就退出这个for循环
}
}
}
return longest;
}
public static void main(String[] args){
//The result is :fsdf
String s1 = "assbcdefsdfsdssf";
String s2 = "fsafsdfkk";
System.out.println("The Longest sub string is: "+MaximumSubString(s1,s2));
}
页:
[1]