[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
- 演算法題:最長公共子序列演算法
- LCS 演算法:Javascript 最長公共子序列演算法JavaScript
- 藍橋杯 演算法提高 字串壓縮演算法字串
- 最長公共子序列求方案數
- 線性dp:最長公共子序列
- [譯] Swift 演算法學院 - 最長公共子序列演算法Swift演算法
- Java實現 藍橋杯 演算法提高 八數碼(BFS)Java演算法
- [演算法筆記]動態規劃之最長公共子串和最長公共子序列演算法筆記動態規劃
- [藍橋杯][演算法提高VIP]尤拉函式演算法函式
- [藍橋杯][演算法提高VIP]超級瑪麗演算法
- [藍橋杯][演算法提高VIP]大數加法演算法
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- 藍橋杯-長草(BFS)
- 力扣1143. 最長公共子序列 動態規劃之最長公共子序列力扣動態規劃
- [藍橋杯][演算法提高VIP]奪寶奇兵 dp演算法
- 經典演算法題每日演練——最長公共子序列演算法
- [Java] 藍橋杯ADV-203 演算法提高 8皇后·改Java演算法
- 藍橋杯 演算法提高 P0102(Java解題)演算法Java
- 動態規劃(最長公共子序列LCS)動態規劃
- 最長公共子序列的程式碼實現
- 藍橋杯 -- 演算法提高 身份證號碼升級演算法
- [藍橋杯][演算法提高VIP]分蘋果 線段樹演算法蘋果
- 藍橋杯 演算法提高 拿糖果(完全揹包dp)演算法
- 【LeetCode動態規劃#14】子序列系列題(最長遞增子序列、最長連續遞增序列、最長重複子陣列、最長公共子序列)LeetCode動態規劃陣列
- [Java] 藍橋杯ADV-213 演算法提高 3-2求存款Java演算法
- 藍橋杯 (java)演算法訓練 數對Java演算法
- 最長公共子序列,遞迴簡單程式碼遞迴
- [Java] 藍橋杯ADV-185 演算法提高 五次方數Java演算法
- [Java] 藍橋杯ADV-147 演算法提高 學霸的迷宮Java演算法
- 藍橋杯—演算法訓練演算法
- 藍橋杯--演算法訓練演算法
- 最長公共子序列問題—動態規劃sdut動態規劃
- LeetCode 1143.最長公共子序列LeetCode