Problem 1: Longest Common Substring 母体
Last updated
Last updated
public String longestCommon(String source, String target) {
char[] s = source.toCharArray();
char[] t = source.toCharArray();
int start = 0;
int longest = 0;
int[][] dp = new int[s.length][t.length];
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < t.length; j++) {
if (s[i] == t[j]) {
if (i == 0 || j == 0) {
dp[i][j] = 1;
} else {
dp[i][j] = dp[i - 1][j - 1] + 1;
}
}
// else {
// dp[i][j] = 0;
// }
if (longest < dp[i][j]) {
longest = dp[i][j];
start = i - longest + 1; //记录开始点
}
}
return source.substring(start, start + longest);
}
}