import java.util.*;
public class Solution {
/**
* longest common substring
* @param str1 string字符串 the string
* @param str2 string字符串 the string
* @return string字符串
*/
public String LCS (String str1, String str2) {
// write code here
int a=str1.length(),b=str2.length(),max=0,index=-1;
int[][] dp=new int[a+1][b+1];
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
if(str1.charAt(i)==str2.charAt(j)){
//如果相等则在前面的基础上+1
dp[i+1][j+1]=dp[i][j]+1;
//如果大于最大长度,获得末尾节点的下标和最大值,则取区间[index-max,index]
if(dp[i+1][j+1]>max){
index=i+1;
max=dp[i+1][j+1];
}
}else{
dp[i+1][j+1]=0;
}
}
}
if(index==-1)return "";
return str1.substring(index-max,index);
}
}