题解 | #最长公共子串#
最长公共子串
http://www.nowcoder.com/practice/f33f5adc55f444baa0e0ca87ad8a6aac
import java.util.*;
public class Solution {
public String LCS (String str1, String str2) {
int m = str1.length(), n = str2.length();
int[][] dp = new int[m+1][n+1];
int end = -1,max_len = 0;
dp[0][0] = 0;
for(int i = 1; i <= m; i++){
for(int j = 1; j <= n; j++){
if(str1.charAt(i-1) == str2.charAt(j-1)){
dp[i][j] = dp[i-1][j-1] + 1;
if(dp[i][j] > max_len){
max_len = dp[i][j];
end = i;
}
}
}
}
return str1.substring(end - max_len,end);
}
}