问题描述
  给定两个字符串,寻找这两个字串之间的最长公共子序列。
输入格式
  输入两行,分别包含一个字符串,仅含有小写字母。
输出格式
  最长公共子序列的长度。
样例输入
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算法提高 最长公共子序列(动态规划)相关推荐

  1. 蓝桥杯 ADV-202 算法提高 最长公共子序列

    问题描述 给定两个字符串,寻找这两个字串之间的最长公共子序列. 输入格式 输入两行,分别包含一个字符串,仅含有小写字母. 输出格式 最长公共子序列的长度. 样例输入 abcdgh aedfhb 样例输 ...

  2. [Java] 蓝桥杯ADV-202 算法提高 最长公共子序列

    问题描述 给定两个字符串,寻找这两个字串之间的最长公共子序列. 输入格式 输入两行,分别包含一个字符串,仅含有小写字母. 输出格式 最长公共子序列的长度. 样例输入 abcdgh aedfhb 样例输 ...

  3. LCS算法:最长公共子序列

    LCS算法:最长公共子序列定义: 一个序列A任意删除若干个字符得到新序列B,则A叫做B的子序列 两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y的最长公共子序列 例如: X={A,B,C,B ...

  4. 用动态规划算法实现最长公共子序列问题的算法(java实现)

    用动态规划算法实现最长公共子序列问题的算法 public class longestCommonSubsequence {//构造追踪数组rec,记录子问题来源private static Strin ...

  5. java lcs_Java算法之最长公共子序列问题(LCS)实例分析

    本文实例讲述了Java算法之最长公共子序列问题(LCS).分享给大家供大家参考,具体如下: 问题描述:一个给定序列的子序列是在该序列中删去若干元素后得到的序列.确切地说,若给定序列X= { x1, x ...

  6. 动态规划算法解最长公共子序列LCS问题

    动态规划算法解LCS问题 作者 July 二零一零年十二月三十一日 本文参考:微软面试100题系列V0.1版第19.56题.算法导论.维基百科. 第一部分.什么是动态规划算法 ok,咱们先来了解下什么 ...

  7. 经典算法题——最长公共子序列

    ** 解析: ** 此题一共有两个要点: 1.求上述两个最长公共子序列的长度 2.求所有可能出现的最长公共子序列个数,答案可能很大,只要将答案对10^8求余即可 第一个都很好想到,难点在于第二个.下面 ...

  8. 算法之最长公共子序列(LCS)问题

    算法课上老师留的作业,最长公共子序列LCS(Longest Common Subsequence)问题,首先看到这个问题感觉有点复杂,和最长公共子串不同,公共子序列并不要求元素相邻,看起来只有穷举才能 ...

  9. 算法导论-----最长公共子序列LCS(动态规划)

    目录 一.概念梳理 二.最长公共子序列解决方案 方案1:蛮力搜索策略 方案2:动态规划策略 三.C代码实现 实现1 实现2(空间优化) 一.概念梳理   1. 子序列(subsequence): 一个 ...

最新文章

  1. SpringBoot 整合 Shiro 实现动态权限加载更新+ Session 共享 + 单点登录
  2. Android项目目录结构分析
  3. 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )
  4. 浅谈AQS(AbstractQueuedSynchronizer,同步队列)
  5. 华为鸿蒙系统有什么特色,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  6. 【C# 委托 Lambda表达式】一个简单的例子
  7. s905各种型号的区别_梯式桥架和槽式桥架的区别介绍
  8. 第38章:MongoDB-集群--Replica Sets(副本集)---多机的搭建
  9. Django:ORM模型类,字段选项,Meta内部类,常见问题处理
  10. PHP和MySQL Web开发从新手到高手,第1天-搭建PHP开发环境
  11. spring cloud微服务之间调用Feign
  12. Mysql5.7双主安装与使用
  13. 整好用版NI Circuit Design Suite Power Pro 11.0
  14. Java全栈开发---Java ERP系统开发:商业ERP(十三)CXF框架,物流BOS系统开发
  15. linux安装微信 安装百度网盘 下载大文件
  16. 迪普交换机恢复出厂设置_LSW交换机初始化配置指导
  17. python编程入门第一课_[转载]Python第一课教学设计及反思
  18. 华硕路由器里的虚拟服务器在哪里,华硕RT-AC86U路由器怎么设置端口转发服务
  19. 《joel说软件》读书笔记
  20. html中加减页码怎么设置,页码设置了1全是1

热门文章

  1. android4.0自定义锁屏总结【android锁屏研究一】
  2. RookeyFrame 隐藏 首次加载菜单 的伸缩动画
  3. 远离神经网络这个黑盒,人工智能不止这一条路可走
  4. Web Storage 与cookies
  5. Hive的查询结果保存方法
  6. javascript 模块化(一)——SeaJS
  7. android 应用的资源
  8. wince -- 线程中SetEvent及WaitForSingleObject用法
  9. Sophos 修复严重的防火墙 RCE 漏洞
  10. 网络设备巨头优倍快的客户数据遭泄露