问题:现在有两个字符串,我们要寻找它们最长的公共子串。比如regression和express这两个字符串,它们的子串有e和ress,那么它们的最长公共字串就是ress。解法:我们利用一个二维数组来记录两个字符串相互匹配的情况,如果字符串str1长度为len1,字符串str2长度为len2,那么数组...
分类:
其他好文 时间:
2014-10-24 20:43:43
阅读次数:
300
给定字符串S, 找到其子串中最长的回文字符串.反转法: 反转S为S', 找到其中的最长公共子串s, 并确认子串s在S中的下标iS与在S'中的下标iS'是否满足式: length(S) =iS +iS' + length(s). 如果满足则s为搜索结果, 如果不满足我们就继续搜索.DP解法:定义 P[...
分类:
其他好文 时间:
2014-10-24 00:13:43
阅读次数:
231
题目链接:http://poj.org/problem?id=2217题目大意: 求两个串的最长公共子串,注意子串是连续的,而子序列可以不连续。解题思路:有个炒鸡快的O(n)的Manacher算法。不过只能求裸的最长公共和回文子串。后缀数组解法是这类问题的模板解法。对于n个串的最长公共子串,这要把这...
分类:
编程语言 时间:
2014-10-23 12:09:09
阅读次数:
252
Reference:IOI2009论文http://www.cnblogs.com/ziyi--caolu/p/3192731.html 1 #include "stdio.h" 2 #include "string.h" 3 #define maxn 200010 4 5 int wa[maxn....
分类:
编程语言 时间:
2014-10-21 13:35:09
阅读次数:
236
总结了几天的后缀数组,终于完成了。不可重叠重复串;可重叠k次重复串; 不相同子串个数最长回文子串 连续重复子串重复次数最多的连续重复子串最长公共子串长度不小于k 的公共子串的个数不小于k 个字符串中的最长子串出现或反转后出现在每个字符串中的最长子串3个字符串,问其中公共子串分别为1,2,3...l的...
分类:
编程语言 时间:
2014-10-16 02:57:51
阅读次数:
309
Long Long MessageProblem's Link:http://poj.org/problem?id=2774Mean:求两个字符串的最长公共子串的长度。analyse:前面在学习后缀数组的时候已经做过一遍了,但是现在主攻字符串hash,再用字符串hash写一遍。这题的思路是这样的:1...
分类:
其他好文 时间:
2014-10-04 23:50:17
阅读次数:
265
9月27日后缀数组:【wikioi3160】最长公共子串dp:NOIP2001统计单词个数后缀自动机:【spoj1812】Longest Common Substring II【wikioi3160】最长公共子串【spoj7258】Lexicographical Substring Search扫描...
分类:
其他好文 时间:
2014-10-03 15:17:24
阅读次数:
1374
Description
A substring of a string T is defined as:
T( i, k)= TiTi+1... Ti+k-1, 1≤ i≤ i+k-1≤| T|.
Given two strings A, B and one integer K, we define S, a set of triples (i, j, k):
S = ...
分类:
其他好文 时间:
2014-09-29 14:38:51
阅读次数:
277
最长公共子串问题的后缀数组解法。将第二个字符串拼接到第一个字符串中去,中间用分割符隔开,避免后面计算的时候发生一个字串横跨两个字符串的情况。之后看相邻的不在同一个字符串中的lcp的最大值即可。#include #include #include #include #include #include ...
分类:
其他好文 时间:
2014-09-27 02:00:58
阅读次数:
293
最长公共子串(LCS)
找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的。其实这又是一个序贯决策问题,可以用动态规划来求解。我们采用一个二维矩阵来记录中间的结果。这个二维矩阵怎么构造呢?直接举个例子吧:"bab"和"caba"(当然我们现在一眼就可以看出来最长公共子串是"ba"或"ab")
b a b
c 0 0 0
a 0 1 0
...
分类:
其他好文 时间:
2014-09-23 20:42:55
阅读次数:
169