首页 > 其他分享 >【动态规划】最长公共子序列问题

【动态规划】最长公共子序列问题

时间:2023-11-17 23:00:24浏览次数:32  
标签:s2 s1 字符串 公共 序列 最长 dp

问题描述:

  字符串s1=BDCABC,字符串s2=ABCBDAB;求它们的最长公共子序列。

定义dp[ i ][ j ] :s1的前 i 个字符串和s2前 j 个字符串的最长公共子序列长度。

以下讨论三种情况:

  s1[ i ] == s2[ j ]  s1的第 i 个字符等于s2的第 j 个字符

dp[ i ][ j ] = dp[ i-1 ][ j-1 ]+1;

  s1[ i ] != s2[ j ]       比较  前 i-1 个字符串与前 j 个字符串的最长子序列 与 前 j-1 个字符串与前 i 个字符串的最长子序列,选取长度更长的一种情况。

dp[ i ][ j ] = max{  dp[ i ][ i-1 ] , dp[ i-1 ][ i ]  };

得到公共子序列,从右下角开始依次挑选相等的。但得到的公共子序列可能不唯一。

 

标签:s2,s1,字符串,公共,序列,最长,dp
From: https://www.cnblogs.com/wanna-be-star/p/17839864.html

相关文章

  • 使用亿图画时序图(序列图)
    1、打开亿图,新建页面,软件和数据库→软件→UML图,双击打开 2、在打开的绘图页面,点击“UML序列”,即可画时序图(序列图)  3、常用的几个图标 ......
  • PHP序列化和反序列化
    将一个对象转化为字符称为序列化 调用serialize方法其他序列化格式 反序列化的过程可以修改类中的值 ......
  • 力扣2760. 最长奇偶子数组
    给你一个下标从 0 开始的整数数组 nums 和一个整数 threshold 。请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 (0<=l<=r<nums.length) 且满足以下条件的 最长子数组 :nums[l]%2==0对于范围 [l,r-1] 内的所有下标 i ,nums[i]%......
  • 机器学习算法原理实现——HMM生成序列和维特比算法
    【HMM基本概念】隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,用于描述一个含有未知参数(隐状态)的马尔可夫过程。在HMM中,我们不能直接观察到状态,但可以观察到每个状态产生的一些相关数据(观测值)。HMM的目标是,给定观测序列,估计出最可能的状态序列。HMM的基本假设有两个(见例子......
  • C/C++ 实现获取硬盘序列号
    获取硬盘的序列号、型号和固件版本号,此类功能通常用于做硬盘绑定或硬件验证操作,通过使用WindowsAPI的DeviceIoControl函数与物理硬盘驱动程序进行通信,发送ATA命令来获取硬盘的信息。以下是该程序的主要功能和流程:定义常量IDE_ATAPI_IDENTIFY和IDE_ATA_IDENTIFY分别表示读取......
  • 通过时序和上下文对比学习时间序列表征《Time-Series Representation Learning via Te
    现在是2023年11月14日的22:15,肝不动了,要不先回寝室吧,明天把这篇看了,然后把文档写了。OK,明天的ToDoList.现在是2023年11月15日的10:35,继续。论文:Time-SeriesRepresentationLearningviaTemporalandContextualContrasting(IJCAI官网版本PDF)或者是:Time-SeriesRepresenta......
  • Linux公共账户管理详解
    Linux公共账户管理简介
Linux公共账户管理是Linux系统管理中的重要环节,涉及到系统的安全性和稳定性。在Linux系统中,每个用户都有一个唯一的用户名和密码,用于登录系统并执行各种操作。公共账户管理的主要任务包括账户的创建、删除、权限设置、密码管理等。
Linux公共账户管理操......
  • R语言多元Copula GARCH 模型时间序列预测|附代码数据
    原文链接  http://tecdat.cn/?p=2623原文出处:拓端数据部落公众号 最近我们被要求撰写关于CopulaGARCH的研究报告,包括一些图形和统计输出。和宏观经济数据不同,金融市场上多为高频数据,比如股票收益率序列。直观的来说,后者是比前者“波动”更多且随机波动的序列,在一元或多元......
  • ACwing 334 K匿名序列
    首先这道题很容易发现如果已经知道了最后的答案序列,那么操作顺序是无所谓的所以我们可以假设从头操作到尾由于题目给的是非严格递增序列,我们猜想最后的答案一定是一段一段的,段与段之间单调递增比如1112222233455反证:如果最终的答案序列存在\(a_{i}\)和\(a_{j}\),其......
  • 基于时间频率一致性对时间序列进行自监督对比预训练《Self-Supervised Contrastive Pr
    2023年11月10日,今天看一篇论文,现在17:34,说实话,想摆烂休息,不想看,可还是要看,拴Q。论文:Self-SupervisedContrastivePre-TrainingforTimeSeriesviaTime-FrequencyConsistency或者是:Self-SupervisedContrastivePre-TrainingforTimeSeriesviaTime-FrequencyConsistenc......