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[][] mat = new int[str1.length() + 1][str2.length() + 1];
int maxLen = 0;
int lastIdx = 0;
for(int i = 1; i < mat.length; i++) {
for(int j = 1; j < mat[0].length; j++) {
if(str1.charAt(i - 1) == str2.charAt(j - 1)) {
mat[i][j] = mat[i - 1][j - 1] + 1;
if(mat[i][j] > maxLen) {
maxLen = mat[i][j];
lastIdx = i;
}
} else {
mat[i][j] = 0;
}
}
}
StringBuilder sb = new StringBuilder();
for(int j = lastIdx - maxLen; j < lastIdx; j++) {
sb.append(str1.charAt(j));
}
return sb.toString();
}
}