当前位置: 首页 > news >正文

Codeup_1132:问题 A: 最长公共子序列

目录

  • Problem Description
  • Input
  • Output
  • Sample Input
  • Sample Output
  • 原题链接
  • 解题思路
  • 代码实现(C++)

Problem Description

给你一个序列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,请问它们的最长公共子序列的长度是多少?

Input

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

Output

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

Sample Input

abcfbc abfcab
programming contest 
abcd mnp

Sample Output

4
2
0

原题链接

  • Codeup_1132:问题 A: 最长公共子序列

解题思路

动态规划求最长公共子序列
动态规划求最长公共子序列

代码实现(C++)

#include <iostream>using namespace std;#define MaxSize 105int dp[MaxSize][MaxSize];int main() {string x, z;while (cin >> x >> z) {// 边界条件for (int i = 0; i <= x.size(); i++)dp[i][0] = 0;for (int j = 0; j <= z.size(); j++)dp[0][j] = 0;for (int i = 1; i <= x.size(); i++) {for (int j = 1; j <= z.size(); j++) {// 状态转移方程if (x[i - 1] == z[j - 1])dp[i][j] = dp[i - 1][j - 1] + 1;elsedp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}}printf("%d\n", dp[x.size()][z.size()]);}return 0;
}

相关文章:

  • 大话设计模式之模板方法模式
  • 云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测
  • 你的 Python 代码需要解释一下了!
  • ideaSSM 人才引进管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目
  • 医院同步时钟系统的耐用性与可靠性
  • 【数据分享】1929-2023年全球站点的逐日平均海平面压力(Shp\Excel\免费获取)
  • git提交和回退
  • 【前端】Layui的表格常用功能,表单提交事件,表格下拉按钮点击事件,表格外的按钮点击事件
  • dfs (蓝桥备赛)
  • 01.ArcEngine中IField的属性详细描述
  • 程序员也写歌啦
  • 什么是数据湖
  • what is apache?
  • 判断互逆字符串
  • 分享多种mfc100u.dll丢失的解决方法(一键修复DLL丢失的方法)
  • 「译」Node.js Streams 基础
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • CentOS 7 防火墙操作
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS魔法堂:Absolute Positioning就这个样
  • httpie使用详解
  • k8s 面向应用开发者的基础命令
  • k8s如何管理Pod
  • LeetCode29.两数相除 JavaScript
  • SpiderData 2019年2月23日 DApp数据排行榜
  • spring + angular 实现导出excel
  • Travix是如何部署应用程序到Kubernetes上的
  • vue 个人积累(使用工具,组件)
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue2.0项目引入element-ui
  • vue--为什么data属性必须是一个函数
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 和 || 运算
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端知识点整理(待续)
  • 使用agvtool更改app version/build
  • 使用common-codec进行md5加密
  • #etcd#安装时出错
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (C#)获取字符编码的类
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (一)u-boot-nand.bin的下载
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .pop ----remove 删除
  • /bin/rm: 参数列表过长"的解决办法
  • @Bean注解详解
  • [3300万人的聊天室] 作为产品的上游公司该如何?