用java代码写一个最长公共子序列
时间: 2023-11-25 17:01:17 浏览: 65
好的,我可以帮助您解决这个问题。以下是Java代码实现最长公共子序列的示例:
```
public class LongestCommonSubsequence {
public static void main(String[] args) {
String str1 = "ABCDAF";
String str2 = "ACBCF";
int[][] lcs = new int[str1.length()+1][str2.length()+1];
for (int i = 0; i <= str1.length(); i++) {
for (int j = 0; j <= str2.length(); j++) {
if (i == 0 || j == 0) {
lcs[i][j] = 0;
}
else if (str1.charAt(i-1) == str2.charAt(j-1)) {
lcs[i][j] = lcs[i-1][j-1] + 1;
}
else {
lcs[i][j] = Math.max(lcs[i-1][j], lcs[i][j-1]);
}
}
}
System.out.println("最长公共子序列长度:" + lcs[str1.length()][str2.length()]);
}
}
```
这个例子中,我们使用动态规划算法来计算给定两个字符串的最长公共子序列长度。该算法的时间复杂度为O(m*n),m和n分别为两个字符串的长度。
阅读全文