[Java] 藍橋杯ADV-202 演算法提高 最長公共子序列
問題描述
給定兩個字串,尋找這兩個字串之間的最長公共子序列。
輸入格式
輸入兩行,分別包含一個字串,僅含有小寫字母。
輸出格式
最長公共子序列的長度。
樣例輸入
abcdgh
aedfhb
樣例輸出
3
樣例說明
最長公共子序列為a,d,h。
資料規模和約定
字串長度1~1000。
package adv202;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[] a = ("," + in.nextLine()).toCharArray();
char[] b = ("." + in.nextLine()).toCharArray();
in.close();
int[][] dp = new int[a.length][b.length];
for (int i = 1; i < a.length; i++) {
for (int j = 1; j < b.length; j++) {
if (a[i] == b[j]) {
dp[i][j] = dp[i - 1][j - 1] + 1;
} else {
dp[i][j] = Integer.max(dp[i][j - 1], dp[i - 1][j]);
}
}
}
System.out.println(dp[a.length - 1][b.length - 1]);
}
}
相關文章
- 最長公共子序列(JAVA)Java
- 藍橋杯演算法提高——字串匹配(Java)演算法字串匹配Java
- java 實現 最長公共子序列Java
- 最長公共子序列
- 藍橋杯 演算法提高 字串壓縮演算法字串
- [Java] 藍橋杯ADV-203 演算法提高 8皇后·改Java演算法
- Java實現 藍橋杯 演算法提高 八數碼(BFS)Java演算法
- 最長公共子序列求方案數
- 最長公共子序列 Longest Common Subsequence
- 線性dp:最長公共子序列
- LeetCode 1143.最長公共子序列LeetCode
- [藍橋杯][演算法提高VIP]大數加法演算法
- 力扣1143. 最長公共子序列 動態規劃之最長公共子序列力扣動態規劃
- [譯] Swift 演算法學院 - 最長公共子序列演算法Swift演算法
- [藍橋杯][演算法提高VIP]尤拉函式演算法函式
- [藍橋杯][演算法提高VIP]超級瑪麗演算法
- [藍橋杯][演算法提高VIP]奪寶奇兵 dp演算法
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- [Java] 藍橋杯ADV-185 演算法提高 五次方數Java演算法
- [Java] 藍橋杯ADV-209 演算法提高 c++_ch02_04Java演算法C++
- [Java] 藍橋杯ADV-213 演算法提高 3-2求存款Java演算法
- [Java] 藍橋杯ADV-147 演算法提高 學霸的迷宮Java演算法
- 經典演算法題每日演練——最長公共子序列演算法
- 藍橋杯-子 2023 / 雙子數
- 藍橋杯-長草(BFS)
- 藍橋杯 演算法提高 拿糖果(完全揹包dp)演算法
- 藍橋杯 -- 演算法提高 身份證號碼升級演算法
- 【LeetCode動態規劃#14】子序列系列題(最長遞增子序列、最長連續遞增序列、最長重複子陣列、最長公共子序列)LeetCode動態規劃陣列
- [Java] 藍橋杯ADV-210 演算法提高 2-1螢幕列印Java演算法
- 最長公共子序列LCS 輸出所有LCS
- 51Nod 1006 最長公共子序列Lcs
- 動態規劃(最長公共子序列LCS)動態規劃
- 最長公共子序列你學會了嗎
- 藍橋杯 分巧克力(Java)Java
- 藍橋杯 (java)演算法訓練 數對Java演算法
- [藍橋杯][演算法提高VIP]分蘋果 線段樹演算法蘋果
- 題目 1501: [藍橋杯][演算法提高VIP]分蘋果演算法蘋果