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[][] lcs = new int[str1.length() + 1][str2.length() + 1];
int max = 0;
int index = 0;
for (int i = 1; i <= str1.length(); i++) {
for (int j = 1; j <= str2.length(); j++) {
if (str1.charAt(i - 1) == str2.charAt(j - 1)) {
lcs[i][j] = lcs[i - 1][j - 1] + 1;
if (lcs[i][j] > max) {
max = lcs[i][j];
index = i;
}
}
}
}
return str1.substring(index - max, index);
}
}
dynamic programming:最长公共子串
最新推荐文章于 2024-10-30 11:47:42 发布