题目:给定两个字符串X,Y,求二者最长的公共子串,例如X=[aaaba],Y=[abaa]。二者的最长公共子串为[aba],长度为3。子序列是不要求连续的,字串必须是连续的。思路与代码:1、简单思想:遍历两个字符串X、Y,分别比较X的字串与Y的字串,求出最长的公共字串。设X长度为m,Y长度为n,最长...
分类:
其他好文 时间:
2015-05-01 11:58:58
阅读次数:
179
题目:给定两个字符串X,Y,求二者最长的公共子串,例如X=[aaaba],Y=[abaa]。二者的最长公共子串为[aba],长度为3。子序列是不要求连续的,字串必须是连续的。思路:1、简单思想:遍历两个字符串X、Y,分别比较X的字串与Y的字串,求出最长的公共字串。#include #include ...
分类:
其他好文 时间:
2015-04-30 19:57:51
阅读次数:
125
参照:v_JULY_v
最长公共子序列定义:
注意最长公共子串(Longest CommonSubstring)和最长公共子序列(LongestCommon Subsequence, LCS)的区别:子串(Substring)是串的一个连续的部分,子序列(Subsequence)则是从不改变序列的顺序,而从序列中去掉任意的元素而获得的新序列;更简略地说,前者(子串...
分类:
其他好文 时间:
2015-04-30 14:23:18
阅读次数:
146
这个好多算法书上都有,不仅限于《算法导论》最长公共子序列时间限制:3000ms|内存限制:65535KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(LongestCommonSubse..
分类:
其他好文 时间:
2015-04-29 15:18:39
阅读次数:
127
最近在跟着罗穗骞 的论文学习后缀数组, 不亏是神牛的论文。无论是算法讲解,还是习题举例都非常不错。下面把最进做的几道后缀数组整理一下。1.两字符串的最长公共子串 1 #include 2 #include 3 #include 4 #include 5 #include 6 #includ...
分类:
编程语言 时间:
2015-04-28 01:51:30
阅读次数:
238
一道dp基础题,给你两个序列,问你最长公共子序列是什么,比如:(a,b)是(a,c,d,b)的子序列。注意不是最长公共子串,这里的子序列可以不连续。
两个for循环就出来了,每一个dp[i][j]可以从dp[i-1][j-1]、dp[i-1][j]、dp[i][j-1]三种情况更新过来,取个最大的,然后把路径用123存下来,最后再顺着路径找然后逆序输出就行。...
分类:
其他好文 时间:
2015-04-26 10:54:56
阅读次数:
126
http://www.cnblogs.com/zhangchaoyang/articles/2012070.html
把一个问题转换为若干个规模更小的子问题,并且都借助于一个二维矩阵来实现计算。
约定:字符串S去掉最后一个字符T后为S',T1和T2分别是S1和S2的最后一个字符。
则dist(S1,S2)是下列4个值的最小者:
1.dist(S1',S2')--...
分类:
其他好文 时间:
2015-04-26 09:15:27
阅读次数:
118
//1403思路:字符串的任何一个子串都是这个字符串的某个后缀的前缀,则求A和B的最长公共子串等价于求A的后缀和B的后缀的最长公共前缀的最大值。做法:将第二个字符串写在第一个字符串后面,中间用一个没有出现过的字符隔开,再求这个新的字符串的后缀数组。 1 #include "bits/stdc++.h...
分类:
编程语言 时间:
2015-04-25 00:06:30
阅读次数:
168
出处http://segmentfault.com/blog/exploring/本章讲解:1. LCS(最长公共子序列)O(n^2)的时间复杂度,O(n^2)的空间复杂度;2. 与之类似但不同的最长公共子串方法。最长公共子串用动态规划可实现O(n^2)的时间复杂度,O(n^2)的空间复杂度;还可以...
分类:
编程语言 时间:
2015-04-23 15:05:12
阅读次数:
306
Life FormsTime Limit:5000MSMemory Limit:65536KTotal Submissions:10800Accepted:2967DescriptionYou may have wondere...
分类:
编程语言 时间:
2015-04-22 22:10:49
阅读次数:
155