给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。
字符串1:BDCABAD
字符串2:ABCBDA**B
则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA
递推实现

public class LCS {public static void main(String[] args) {int[][] dp = new int[m+1][n+1];for (int i = 1; i < m+1; i++) {for (int j = 1; j < n+1; j++) {if(x.charAt(i-1) == y.charAt(j-1)){dp[i][j] = dp[i-1][j-1] + 1;}else if(dp[i-1][j] >= dp[i][j-1]){dp[i][j] = dp[i-1][j];}else{dp[i][j] = dp[i][j-1];}}}System.out.printf("%s与%s的最长公共子序列为:\n",x,y);}}
