蓝桥杯 ADV-202 算法提高 最长公共子序列
问题描述
给定两个字符串,寻找这两个字串之间的最长公共子序列。
输入格式
输入两行,分别包含一个字符串,仅含有小写字母。
输出格式
最长公共子序列的长度。
样例输入
abcdgh
aedfhb
样例输出
3
样例说明
最长公共子序列为a,d,h。
数据规模和约定
字串长度1~1000
思路:
1. dp【i】【j】表示字符串a的前i个字符与字符串b的前j个字符的最长公共子序列和
1)如果a【i】 == b【j】,那么最长公共子序列和可以在前【i-1】【j-1】的基础上+1
2)如果不等于,则取【i-1】【j】与【i】【j-1】的最大值
2. dp【lena】【lenb】即为所求
3. 边界:a的前0个与b的前j个 dp【0】【j】 = 0, a的前i个与b的前0个 dp【i】【0】 = 0
#include <iostream>
#include <cmath>
using namespace std;char a[1005], b[1005];
int dp[1005][1005];int main() {scanf("%s", a+1);scanf("%s", b+1);int lena = strlen(a+1), lenb = strlen(b+1);for(int i = 0; i <= lena; i++) dp[i][0] = 0;for(int i = 0; i <= lenb; i++) dp[0][i] = 0;for(int i = 1; i <= lena; i++){for(int j = 1; j <= lenb; j++){if(a[i] == b[j]){dp[i][j] = dp[i-1][j-1]+1;}else{dp[i][j] = max(dp[i-1][j], dp[i][j-1]);}}}printf("%d", dp[lena][lenb]);return 0;
}
蓝桥杯 ADV-202 算法提高 最长公共子序列相关推荐
- [Java] 蓝桥杯ADV-202 算法提高 最长公共子序列
问题描述 给定两个字符串,寻找这两个字串之间的最长公共子序列. 输入格式 输入两行,分别包含一个字符串,仅含有小写字母. 输出格式 最长公共子序列的长度. 样例输入 abcdgh aedfhb 样例输 ...
- 蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)
问题描述 给定两个字符串,寻找这两个字串之间的最长公共子序列. 输入格式 输入两行,分别包含一个字符串,仅含有小写字母. 输出格式 最长公共子序列的长度. 样例输入 abcdgh aedfhb 样例输 ...
- LCS算法:最长公共子序列
LCS算法:最长公共子序列定义: 一个序列A任意删除若干个字符得到新序列B,则A叫做B的子序列 两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y的最长公共子序列 例如: X={A,B,C,B ...
- 用动态规划算法实现最长公共子序列问题的算法(java实现)
用动态规划算法实现最长公共子序列问题的算法 public class longestCommonSubsequence {//构造追踪数组rec,记录子问题来源private static Strin ...
- java lcs_Java算法之最长公共子序列问题(LCS)实例分析
本文实例讲述了Java算法之最长公共子序列问题(LCS).分享给大家供大家参考,具体如下: 问题描述:一个给定序列的子序列是在该序列中删去若干元素后得到的序列.确切地说,若给定序列X= { x1, x ...
- 动态规划算法解最长公共子序列LCS问题
动态规划算法解LCS问题 作者 July 二零一零年十二月三十一日 本文参考:微软面试100题系列V0.1版第19.56题.算法导论.维基百科. 第一部分.什么是动态规划算法 ok,咱们先来了解下什么 ...
- 经典算法题——最长公共子序列
** 解析: ** 此题一共有两个要点: 1.求上述两个最长公共子序列的长度 2.求所有可能出现的最长公共子序列个数,答案可能很大,只要将答案对10^8求余即可 第一个都很好想到,难点在于第二个.下面 ...
- 算法之最长公共子序列(LCS)问题
算法课上老师留的作业,最长公共子序列LCS(Longest Common Subsequence)问题,首先看到这个问题感觉有点复杂,和最长公共子串不同,公共子序列并不要求元素相邻,看起来只有穷举才能 ...
- 算法导论-----最长公共子序列LCS(动态规划)
目录 一.概念梳理 二.最长公共子序列解决方案 方案1:蛮力搜索策略 方案2:动态规划策略 三.C代码实现 实现1 实现2(空间优化) 一.概念梳理 1. 子序列(subsequence): 一个 ...
最新文章
- Perl时间处理函数
- 在SAP BW中使用ABAP
- 并发环境下HashMap引起的full gc排查
- :src 三目运算
- foreach ($cc as $key = $item);$item加与不加的区别
- JavaEE PO VO BO DTO POJO DAO 整理总结(转)
- 【.Net MF网络开发板研究-03】获取雅虎天气(HttpClient示例)
- (转)开源的大文件上传组件NeatUpload
- 速达软件启示录——记中国一代ERP性价比之王的没落
- excel转置怎么操作_excel怎么做日历?使用Excel制作日历的操作方法
- 免费谷歌云服务器,极简到手指南
- oCPC实践录 | 开篇语
- GAMMA初学笔记三
- 黑客攻防技术宝典Web实战篇(第二版)_读书笔记(第一章~第三章)
- go实现时针分针夹角问题
- 网站被黑,通过百度/搜狗等搜索关键词访问跳转到其他网站怎么办?
- RT1052 ENET ENET_SendFrame调用 未发送帧
- Java_22 字符流与字节流(IO流)③Properties集合、编码表
- 用软件查看内存大小和插槽数
- 使用 CMake 构建 LLVM