问题 A: 最长公共子序列

时间限制: 1 Sec  内存限制: 32 MB
提交: 520  解决: 288
[提交][状态][讨论版][命题人:外部导入]

题目描述

给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。
例如:Z=<a,b,f,c>是序列X=<a,b,c,f,b,c>的一个子序列,Z中的元素在X中的下标序列为<1,2,4,6>。
现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?

输入

输入包含多组测试数据。每组输入占一行,为两个字符串,由若干个空格分隔。每个字符串的长度不超过100。

输出

对于每组输入,输出两个字符串的最长公共子序列的长度。

样例输入

abcfbc abfcab
programming contest
abcd mnp

样例输出

4
2
0

#include<bits/stdc++.h>
using namespace std;
const int maxn=101;
char a[maxn],b[maxn];
int dp[maxn][maxn];
int main(){while(cin>>a+1){cin>>b+1;int lena=strlen(a+1);int lenb=strlen(b+1);//边界for(int i=0;i<=lena;i++){dp[i][0]=0;} for(int j=0;j<=lenb;j++){dp[0][j]=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\n",dp[lena][lenb]);}return 0;}

Codeup最长公共子序列(LCS):最长公共子序列相关推荐

  1. 最长上升子序列、最长公共子序列、最长公共上升子序列(LIS、LCS、LCIS)

    LIS.LCS.LCIS 最长上升子序列LIS 最长公共子序列LCS 最长公共上升子序列LCIS 最长上升子序列LIS 题目链接:AcWing895. 最长上升子序列 这里只说明 O ( n 2 ) ...

  2. LCS最长公共子序列和LIS最长上升子序列——例题剖析

    一.LCS最长公共子序列 最长公共子序列(LCS)问题算法详解+例题(转换成LIS,优化为O(nlogn),看不懂你来打我) longest comment subsequence 模板题 longe ...

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

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

  4. 最长公共子序列LCS[C++题解]

    文章目录 状态表示 状态转移 题目大意: 两个字符串a和b,需要统计出其中公共子序列的最长是多少. 注意:所谓子序列,指的是出现的先后顺序一样,但可以不连续出现.比如对于s=abdef,其中adf是s ...

  5. 编辑距离:最长公共子序列-LCS问题

    一.基本概念 LCS是最长公共子序列(Longest common subsequence problem)的缩写.LCS问题是在一组序列(通常只有两个序列)中找到所有序列共有的最长子序列的问题.它与 ...

  6. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  7. 动态规划之最长公共子序列(LCS)

    最长公共子序列(LCS,Longest Common Subsequence).其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最 ...

  8. 程序员编程艺术第十一章:最长公共子序列(LCS)问题

    程序员编程艺术第十一章:最长公共子序列(LCS)问题 0.前言 程序员编程艺术系列重新开始创作了(前十章,请参考程序员编程艺术第一~十章集锦与总结).回顾之前的前十章,有些代码是值得商榷的,因当时的代 ...

  9. 【51NOD】1006 最长公共子序列Lcs(动态规划)

    给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最 ...

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

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

最新文章

  1. 工程师必读 微软如何部署Exchange2010
  2. php mysql简单链接_php mysql 数据库链接简单例子
  3. 再见,2014;您好,2015!
  4. 天勤数据结构:前缀、中缀、后缀表达式的转换与计算
  5. C++ 预编译头文件
  6. zynq中mgtx应用_Zynq7000系列之芯片引脚功能综述
  7. HDU 3487 Play with Chain(Splay)
  8. jquery --- Poshy Tip jQuery Plugin
  9. 12015.linux通过代码或命令形式操作内存/dev/mem
  10. [Java] 蓝桥杯ALGO-148 算法训练 5-1最小公倍数
  11. centos 7 安装ntp服务器
  12. hdu 5402 Travelling Salesman Problem (技巧,未写完)
  13. 使用getopt函数对命令行短形参进行处理
  14. MOOC 浙江大学C语言翁恺(第一、二章 满分答案)
  15. Web前端——什么是web前端,什么是HTML及其常用标签
  16. itoa函数和atoi函数的实现和用法
  17. 每日新闻:AI落地元年来了;中兴通讯5G最新播报;李彦宏对未来20年的手机发展这样看;恒大健康与FF宣布和解...
  18. 百度下拉词用python怎么抓取
  19. 前端面试题库 面试题 JS难题,做对一半就是高手
  20. STM32单片机智能鱼缸温度水位控制系统自动加热加水抽水

热门文章

  1. html 获取下一个兄弟节点,JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法...
  2. sip协议之网络传输方式
  3. ticklength
  4. supervisor 常见错误及其解决方案
  5. 合成大西瓜游戏|微信合成大西瓜游戏技巧及资源
  6. ccc-sklearn-9-SVM(3)
  7. 老码农眼中的大模型(LLM)
  8. USB与串口的区别简要总结
  9. Python CGI编程详细步骤,和说说我踩的坑!!
  10. 豆沙绿 RGB值 hex值 及eclipse设置背景色步骤