最长公共子序列

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。
tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。

输入
第一行给出一个整数N(0<N<100)表示待测数据组数
接下来每组数据两行,分别为待测的两组字符串。每个字符串长度不大于1000.
输出
每组测试数据输出一个整数,表示最长公共子序列长度。每组结果占一行。
样例输入
2
asdf
adfsd
123abc
abc123abc
样例输出
3
6
二维动态规划!
AC码:
#include<stdio.h>
#include<string.h>
int num[1003][1003];
int max(int x,int y)
{return x>y?x:y;
}
int main()
{int n;char str1[1001],str2[1001];scanf("%d",&n);while(n--){int i,j;scanf("%s",str1);scanf("%s",str2);memset(num,0,sizeof(num));for(i=0;str1[i]!='\0';i++){for(j=0;str2[j]!='\0';j++){if(str1[i]==str2[j])num[i+1][j+1]=num[i][j]+1;elsenum[i+1][j+1]=max(num[i+1][j],num[i][j+1]);}}printf("%d\n",num[i][j]);}return 0;
}

NYOJ 36 最长公共子序列相关推荐

  1. NYOJ 36 最长公共子序列 dp

    最长公共子序列 点击打开链接时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列. tip:最长公共子序 ...

  2. nyoj 36 最长公共子序列 dp问题最长公共子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共

    最长公共子序列 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列. tip:最长公共子序列也称 ...

  3. NYOJ最长公共子序列(dp)

    最长公共子序列 描述: 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列. tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common ...

  4. [csu/coj 1078]多个序列的最长公共子序列

    题意:给n个序列,同一个序列里面元素互不相同,求它们的最长公共子序列. 思路:任取一个序列,对于这个序列里面的两个数ai,aj(i<j),如果对于其它每一个序列,都出现过ai,aj,且ai在aj ...

  5. 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离

    最大子序列 最大子序列是要找出由数组成的一维数组中和最大的连续子序列.比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大:而 {5,-6,4,2}的最大子序列是{4, ...

  6. 动态规划最常见的习题 (最长公共子串、最长公共子序列、最短编辑距离)

    (1)理论部分: (2)习题: 最长公共子串: 1 package month7.dp; 2 3 //https://www.nowcoder.com/questionTerminal/181a1a7 ...

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

    最长公共子序列的问题描述为: 下面介绍动态规划的做法. 令 dp[i][j] 表示字符串 A 的 i 号位与字符串 B 的 j 号位之前的 LCS 长度(下标从 1 开始),如 dp[4][5] 表示 ...

  8. 单调递增最长子序列 - 从最长公共子序列到单调递增最长子序列

    最长公共子序列 的 算法思路 在这里 点击进入  将 代码稍微改动一下 就可以   ,   最长公共子序列  是两个 字符串求 公共子序列  , 可以将其中的 一个 改为 从 a 到 z  这样输入另 ...

  9. 动态规划1--最长公共子序列

    动态规划1--最长公共子序列 一.动态规划 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题.简单地采用把大问题分解成子问题,并 综合子问题的解导出大问题的解的方法,问题求解耗时 ...

最新文章

  1. iphone无线服务器未响应,iPhone无线充电断断续续或无法充电是什么原因?
  2. leetcode[217].存在重复元素
  3. java规则表达式_Java基础--正则表达式的规则
  4. 【Python】模拟面试技术面试题答
  5. netcat、nc工具随记
  6. redis 配置以及缓存(javaconfig)
  7. python网络编程案例_python网络编程实例简析
  8. 使用jquery检查/取消选中复选框? [重复]
  9. PBRT-V3体渲染笔记
  10. Ubuntu安装DGE-530T网卡驱动
  11. [Accessibility] ****************** Loading GAX Client Bundle ****************
  12. 浅析地理数据模型发展
  13. java 颜色平滑渐变算法_颜色渐变算法
  14. pythonurllib新浪微博_定向爬虫 - Python模拟新浪微博登录
  15. 查找算法之斐波那契查找算法
  16. 1931CIE基础知识
  17. React 初探 [五] React 组件的生命周期
  18. [附源码]Python计算机毕业设计SSM绩效考核管理系统(程序+LW)
  19. BZOJ 3238 [Ahoi2013]差异
  20. C3P0反序列化链学习

热门文章

  1. 神策数据荣获“2017金融科技·大数据优秀案例之最佳实践案例奖”
  2. 新纳米结构能加快电子设备运行
  3. (三)RocketMQ集群部署实践
  4. 网上搜集第三方(一)
  5. Java中创建对象的四种方式
  6. MSSQL 判断表是否存在的两种方法
  7. rejection from Cambridge Machine Learning and Machine Intelligence MPhil
  8. you know what I mean
  9. TCP粘包产生的原因
  10. UNITY中使用不安全代码的相关设置