/*
* 两个字符串的最大子字符串
*/
public class maxSubString {
public static void main(String[] args){
String str1 = "abcdefgh";
String str2 = "dbcdefjjj";
System.out.println(findSubString(str1, str2));
}
public static String findSubString(String str1, String str2){
char[] arr1 = str1.toCharArray();
char[] arr2 = str2.toCharArray();
int len1 = arr1.length;
int len2 = arr2.length;
int[][] tmp = new int[len1][len2];
int maxLength = ;
int endIndex=;
for(int i = ; i < len1; i++)
{
if(arr1[i] == arr2[]) tmp[i][] = ;
else tmp[i][] = ;
}
for(int j = ; j < len2; j++){
if(arr1[] == arr2[j]) tmp[][j] = ;
else tmp[][j] = ;
}
for(int i = ; i < len1; i++){
for(int j = ; j < len2; j++){
if(arr1[i] == arr2[j]){
tmp[i][j] = tmp[i-][j-] +;
if(tmp[i][j] > maxLength){
maxLength = tmp[i][j];
endIndex =j;
}
}
else
tmp[i][j] = ;
}
}
String result = str2.substring(endIndex-maxLength+, endIndex+);
return result;
}
}