例题: 1、对于两个字符串,请设计一个高效算法,求他们的最长公共子序列的长度,这里的最长公共子序列定义为有两个序列U1,U2,U3...Un和V1,V2,V3...Vn,其中Ui<Ui+1,Vi<Vi+1。且A[Ui] == B[Vi]。 给定两个字符串A和B,同时给定两个串的长度n和m,请 ...
分类:
其他好文 时间:
2018-04-11 17:07:49
阅读次数:
165
两者的区别: 最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为:子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;也就是说,子串中字符的位置必须是连续 ...
分类:
其他好文 时间:
2018-03-30 21:47:04
阅读次数:
167
0 问题 给定两个字符串,求最长公共子序列LCS。 也就是说两个字符串中都有的部分,或者理解为,两个字符串同时都删除字符串中的某些字符,使得最终的两个字符串,相等,且是最长的。 1 分析 假设两个str1,str2字符串,已经知道了最长公共子序列长度为L 那么,当在str1和str2,两个的尾部,同 ...
分类:
其他好文 时间:
2018-03-19 11:44:40
阅读次数:
153
cnblogs belong “cnblogs” 和 ”blong“的最长公共子序列为4 方法1-->枚举 将长度为M和N的长度的字符串进行匹配,需要匹配2M * 2N次,复杂度为指数级 方法2-->动态规划 Step1->计算公共子序列长度 Step2->根据长度回溯求出最长公共子序列 现有两个序 ...
分类:
其他好文 时间:
2018-03-13 00:54:23
阅读次数:
188
动态规划类型总结 1.最长上升子序列,最大连续子序列和最长公共子序列(zxh,415--430,556--560,587--591,uva 11400,uva 11584,uva1625) 2.背包问题(uva 12563,金明的预算方案) 3.区间DP(zxh,488--502,算法导论相应题目) ...
分类:
其他好文 时间:
2018-02-24 13:09:55
阅读次数:
157
在字符串S中按照其先后顺序依次取出若干个字符,并讲它们排列成一个新的字符串,这个字符串就被称为原字符串的子串 有两个字符串S1和S2,求一个最长公共子串,即求字符串S3,它同时为S1和S2的子串,且要求它的长度最长,就是这里的 最长公共子序列问题。 最长公共子序列问题的递推条件如下:dp[i][j] ...
分类:
其他好文 时间:
2018-02-21 11:42:10
阅读次数:
102
题意 给两行词串。第二行无重复,第一行有重复。每次可以在第一行删去一个和第二行的公共子序列。问最少几次可以删完。 长度<1e5 26小写字母 题解 每次求最长公共子序列显然会T。 等价问题是,对第二行词从小到大标号,第一行上升子序列个数。 那么只需要倒序扫第一行词串。初始序列数为0,记录每个序列当前 ...
分类:
其他好文 时间:
2018-02-16 22:54:40
阅读次数:
197
这个问题很有意思,在生物应用中,经常需要比较两个(或多个)不同生物体的DNA片段。例如,某种生物的DNA可能为S1 = ACCGGTCGAGTGCGCGGAAGCCGGCCGAA,S2 = GTCGTTCGGAATGCCGTTGCTCTGTAAA。比较两个DNA串是想要确定它们之间的“相识度”,作为 ...
分类:
其他好文 时间:
2018-02-13 20:32:43
阅读次数:
172
先把前面介绍的动态规划模型列举如下: (1)最大连续子序列和 令 dp[i] 表示以 A[i] 作为结尾的连续序列的最大和。 (2)最长不下降子序列(LIS) 令 dp[i] 表示以 A[i] 作为结尾的最长不下降子序列长度。 (3)最长公共子序列(LCS) 令 dp[i][j] 表示字符串 A 的 ...
分类:
其他好文 时间:
2018-02-10 20:09:36
阅读次数:
163