最长公共子序列LCS
序列 最长 公共 LCS
2023-09-11 14:19:01 时间
1 #include <iostream> 2 #include <stdio.h> 3 #include <algorithm> 4 5 using namespace std; 6 7 int dp[105][105]; 8 9 int main() 10 { 11 string s1, s2; 12 while(cin >> s1 >> s2) 13 { 14 int L1 = s1.length(); 15 int L2 = s2.length(); // 依次求得两个字符串的长度 16 for(int i = 0; i <= L1; ++i) dp[i][0] = 0; 17 for(int j = 0; j <= L2; ++j) dp[0][j] = 0; // 设初始值为0 18 for(int i = 1; i <= L1; ++i) 19 { 20 for(int j = 1; j <= L2; ++j) // 双重循环依次求得每个dp[i][j]的值 21 { 22 if(s1[i-1] == s2[j-1]) // 因为字符串数组下标从0开始,所以第i个字符位置为s1[i-1],若两个字符相等 23 dp[i][j] = dp[i-1][j-1] + 1; 24 else // 若当前两个字符不相等 25 dp[i][j] = max(dp[i-1][j], dp[i][j-1]); 26 } 27 } 28 29 cout << dp[L1][L2] << endl; 30 } 31 32 return 0; 33 }
相关文章
- 求解最长递增子序列长度|动态规划+二分查找:CC++实现
- Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
- Java实现 LeetCode 594 最长和谐子序列(滑动窗口)
- Java实现 LeetCode 594 最长和谐子序列(滑动窗口)
- Java实现 LeetCode 521 最长特殊序列 Ⅰ(出题人:“就是喜欢看你们不敢相信那么简单,又不敢提交的样子。”)...
- Java实现 蓝桥杯VIP 算法提高 最长公共子序列
- Java实现 蓝桥杯VIP 算法提高 最长字符序列
- (剑指Offer)面试题24:二叉搜索树的后序遍历序列
- (字符串)最长公共子序列(Longest-Common-Subsequence,LCS)
- 动态规划之最长公共子序列
- 最长上升子序列(线性DP)
- Leetcode.516 最长回文子序列
- 【关于时间序列的ML】项目 1 :使用 Python 进行 Covid-19 病例 预测
- POJ 1887 Testingthe CATCHER (LIS:最长下降子序列)
- 【Leetcode刷题Python】300. 最长递增子序列
- 【LeetCode】最长回文子序列
- 动态规划——最长公共子序列(闫氏DP)