蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)
问题描述
给定两个字符串,寻找这两个字串之间的最长公共子序列。
输入格式
输入两行,分别包含一个字符串,仅含有小写字母。
输出格式
最长公共子序列的长度。
样例输入
abcdgh
aedfhb
样例输出
3
样例说明
最长公共子序列为a,d,h。
数据规模和约定
字串长度1~1000。
分析:求最长公共子序列,用动态规划~只需建立一个长宽为两个字符串长度+1的二维数组~dp[i][j]表示String a的前i个字符构成的字符串和String b的前j个字符构成的字符串这两者得到的最长公共子序列的长度为dp[i][j]~~~所以第0行和第0列所有的数都为0~
根据递推公式:
最后一个格子的长度就是两个字符串的最长公共子序列的长度~
#include <iostream>
using namespace std;
int dp[1001][1001];
int main() {string a, b;cin >> a >> b;for(int i = 1; i <= a.length(); i++) {for(int j = 1; j <= b.length(); j++) {if(a[i-1] == b[j-1])dp[i][j] = dp[i-1][j-1] + 1;elsedp[i][j] = max(dp[i-1][j], dp[i][j-1]);}}cout << dp[a.length()][b.length()];return 0;
}
蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)相关推荐
- 蓝桥杯 ADV-202 算法提高 最长公共子序列
问题描述 给定两个字符串,寻找这两个字串之间的最长公共子序列. 输入格式 输入两行,分别包含一个字符串,仅含有小写字母. 输出格式 最长公共子序列的长度. 样例输入 abcdgh aedfhb 样例输 ...
- [Java] 蓝桥杯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): 一个 ...
最新文章
- SpringBoot 整合 Shiro 实现动态权限加载更新+ Session 共享 + 单点登录
- Android项目目录结构分析
- 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )
- 浅谈AQS(AbstractQueuedSynchronizer,同步队列)
- 华为鸿蒙系统有什么特色,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可
!【手机吧】_百度贴吧...
- 【C# 委托 Lambda表达式】一个简单的例子
- s905各种型号的区别_梯式桥架和槽式桥架的区别介绍
- 第38章:MongoDB-集群--Replica Sets(副本集)---多机的搭建
- Django:ORM模型类,字段选项,Meta内部类,常见问题处理
- PHP和MySQL Web开发从新手到高手,第1天-搭建PHP开发环境
- spring cloud微服务之间调用Feign
- Mysql5.7双主安装与使用
- 整好用版NI Circuit Design Suite Power Pro 11.0
- Java全栈开发---Java ERP系统开发:商业ERP(十三)CXF框架,物流BOS系统开发
- linux安装微信 安装百度网盘 下载大文件
- 迪普交换机恢复出厂设置_LSW交换机初始化配置指导
- python编程入门第一课_[转载]Python第一课教学设计及反思
- 华硕路由器里的虚拟服务器在哪里,华硕RT-AC86U路由器怎么设置端口转发服务
- 《joel说软件》读书笔记
- html中加减页码怎么设置,页码设置了1全是1