public class LongestCommonSubSequence {
public static int lcs(String s1, String s2) {
if (s1 == null || s2 == null || s1.length() == 0 || s2.length() == 0) {
return 0;
}
int max = 0;
int maxi = 1;
int maxj = 1;
int [][] dp = new int[s1.length()+1][s2.length()+1];
for (int i = 1; i <= s1.length(); i++) {
for (int j = 1; j < s2.length()+1; j++) {
if (s1.charAt(i-1) == s2.charAt(j-1)) {
dp[i][j] = dp[i-1][j-1] + 1;
} else {
dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]);
}
if (max < dp[i][j]) {
max = dp[i][j];
maxi = i;
maxj = j;
动态规划 - 最长公共子序列
最新推荐文章于 2024-04-29 21:11:51 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)