領釦LintCode演算法問題答案-77. 最長公共子序列
領釦LintCode演算法問題答案-77. 最長公共子序列
77. 最長公共子序列
描述
給出兩個字串,找到最長公共子序列(LCS),返回LCS的長度。
最長公共子序列的定義:
最長公共子序列問題是在一組序列(通常2個)中找到最長公共子序列(注意:不同於子串,LCS不需要是連續的子串)。該問題是典型的電腦科學問題,是檔案差異比較程式的基礎,在生物資訊學中也有所應用。
樣例 1:
輸入: "ABCD" and "EDCA"
輸出: 1
解釋:
LCS 是 'A' 或 'D' 或 'C'
樣例 2:
輸入: "ABCD" and "EACB"
輸出: 2
解釋:
LCS 是 "AC"
題解
public class Solution {
/**
* @param A: A string
* @param B: A string
* @return: The length of longest common subsequence of A and B
*/
public int longestCommonSubsequence(String A, String B) {
// write your code here
if (A.length() == 0
|| B.length() == 0) {
return 0;
}
int[][] dp = new int[A.length() + 1][B.length() + 1];
for (int i = 1; i <= A.length(); i++) {
for (int j = 1; j <= B.length(); j++) {
if (A.charAt(i - 1) == B.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]);
}
}
}
return dp[A.length()][B.length()];
}
}
鳴謝
非常感謝你願意花時間閱讀本文章,本人水平有限,如果有什麼說的不對的地方,請指正。
歡迎各位留言討論,希望小夥伴們都能每天進步一點點。
相關文章
- 演算法題:最長公共子序列演算法
- 領釦LintCode演算法問題答案-1225. 島的周長演算法
- 領釦LintCode演算法問題答案-1343. 兩字串和演算法字串
- 領釦LintCode演算法問題答案-988. 硬幣擺放演算法
- 領釦LintCode演算法問題答案-1895. 安排面試城市演算法面試
- 最長公共子序列
- 領釦LintCode演算法問題答案-1878. 旋轉數字演算法
- 領釦LintCode演算法問題答案-1886. 目標移動演算法
- 領釦LintCode演算法問題答案-1320. 包含重複值演算法
- 最長公共子序列(JAVA)Java
- LCS 演算法:Javascript 最長公共子序列演算法JavaScript
- 最長公共子序列問題—動態規劃sdut動態規劃
- 領釦LintCode演算法問題答案-1876. 外星人字典(簡單)演算法
- 以最長公共子序列問題理解動態規劃演算法(DP)動態規劃演算法
- “最長公共字串子序列”問題的動態規劃法演算法字串動態規劃演算法
- 動態規劃經典問題----最長公共子序列動態規劃
- 經典演算法題每日演練——最長公共子序列演算法
- 領釦LintCode演算法問題答案-1214. 許可證金鑰格式演算法
- java 實現 最長公共子序列Java
- 最長公共子序列求方案數
- 線性dp:最長公共子序列
- [譯] Swift 演算法學院 - 最長公共子序列演算法Swift演算法
- 領釦LintCode演算法問題答案-1354. 楊輝三角形II演算法
- [演算法筆記]動態規劃之最長公共子串和最長公共子序列演算法筆記動態規劃
- 領釦LintCode演算法問題答案-1206. 下一個更大的數 I演算法
- [題解]P1439 【模板】最長公共子序列
- 【LeetCode動態規劃#14】子序列系列題(最長遞增子序列、最長連續遞增序列、最長重複子陣列、最長公共子序列)LeetCode動態規劃陣列
- 牛客題霸 [最長公共子串]C++題解/答案C++
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- 力扣1143. 最長公共子序列 動態規劃之最長公共子序列力扣動態規劃
- 動態規劃(最長公共子序列LCS)動態規劃
- 最長公共子序列的程式碼實現
- 淺談最長公共子序列引發的經典動態規劃問題動態規劃
- 最長公共子序列,遞迴簡單程式碼遞迴
- LeetCode 1143.最長公共子序列LeetCode
- 微軟演算法面試題:如何找最長的增長子序列微軟演算法面試題
- 動態規劃求解最長上升子序列問題動態規劃