一种不使用strcmp来寻找两个字符串中最长的公共子串的方法。...
分类:
其他好文 时间:
2015-03-29 22:12:34
阅读次数:
128
参考:http://www.ahathinking.com/archives/124.html最长公共子序列1、动态规划解决过程1)描述一个最长公共子序列 如果序列比较短,可以采用蛮力法枚举出X的所有子序列,然后检查是否是Y的子序列,并记录所发现的最长子序列。如果序列比较长,这种方法需要指数级时间....
分类:
编程语言 时间:
2015-03-18 23:05:17
阅读次数:
370
该题目和求两个字符串的最长公共子串,有相似之处。关键是求得动态规划方程。即f(m,n)= MIN(f(m-1,n-1),f(m-1,n),f(m,n-1)) + 1;f(m,n)表示长度为m的字符串转换为长度为n的字符串所需的最少步骤。f(m,n)递推是通过和最后一个字符串的比较递推得到。存在一个定...
分类:
其他好文 时间:
2015-03-18 01:08:08
阅读次数:
139
题意:给定一个串,和一个数c,求一个长度最大的公共子串(可以重叠),并且该公共子串出现次数大于c。题解见罗穗骞论文。收获: 计算高度函数时,遇到rk[i]==1的点时,要将k设置成0。(k是"h[i-1]-1")。 1 #include 2 #include 3 #include 4 #de...
分类:
其他好文 时间:
2015-03-17 21:38:29
阅读次数:
129
后缀数组的两篇神论文:
国家集训队2004论文集 许智磊
算法合集之《后缀数组——处理字符串的有力工具》
很多人的模版都是用论文上的
包括kuangbin的模版:(DA算法)
模版中比较难理解的地方有两点1.按关键词排序 2.把字符串长度增加一位
按关键词排序的意思其实是基数排序中相当把两位数排序时先排个位,再排十位
这里也一样先排后2^k...
分类:
编程语言 时间:
2015-03-17 18:05:56
阅读次数:
185
题意:将两个英文单词进行合并。【最长公共子串只要保留一份】输出合并后的英文单词。思路:求最长公共子串。记录路径:mark[i][j]=-1:从mark[i-1][j]转移而来。mark[i][j]=0:从mark[i-1][j-1]转移而来。mark[i][j]=1:从mark[i][j-1]转移而...
分类:
其他好文 时间:
2015-03-11 21:12:44
阅读次数:
134
题目大意:求n个串的最长公共子串
太久没写SAM了真是……
将第一个串建成后缀自动机,用其它的串进去匹配
每个节点记录每个串在上面匹配的最大长度
那么这个节点对答案的贡献就是所有最大长度的最小值
对所有贡献取最大就行了= = 这最大最小看着真是别扭
#include
#include
#include
#include
#define M 10100
using namespa...
分类:
其他好文 时间:
2015-03-09 22:36:25
阅读次数:
204
HDU 1403 Longest Common Substring(后缀数组啊 求最长公共子串 模板题)...
分类:
编程语言 时间:
2015-03-04 19:08:31
阅读次数:
161
最长公共子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。
tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合...
分类:
其他好文 时间:
2015-02-27 17:09:36
阅读次数:
160
题意:找出一个最大的公共子串,这个子串是一个字符串的尾串(tail substring ),同时是另外那个字符串的头串(head substring),是满足A+B的长度strlen(A+B)达到最小值,这里面要注意的一个问题是,谁做模式串P是不一定的,所以要分别比较不同字符串作为模式的KMP值。
思路:让两个串分别做模式串。看谁KMP的结束的时候匹配的字符字符的个数最多就好。
当然也可以把两...
分类:
其他好文 时间:
2015-02-18 09:37:27
阅读次数:
144