题目链接:Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
这道题的要求是在字符串数组中找到最长公共前缀。
思路比较简单,就是两个字符串逐个比较,找最长公共子串。这里采用将每个字符串都与第一个字符串相比较,求最长子串。
时间...
分类:
其他好文 时间:
2015-01-29 21:13:30
阅读次数:
197
两个题目意思差不多,都是让求最长公共子串,只不过poj那个让输出长度,而URAL那个让输出一个任意的最长的子串。
解体思路:
Long Long Message
Time Limit: 4000MS
Memory Limit: 131072K
Total Submissions: 22313
Accep...
分类:
其他好文 时间:
2015-01-26 22:49:45
阅读次数:
369
题目大意:给你一个字符串,给你N次查询,每次给你一个区间让你求出这个区间里面有多少子串。
解题思路:我们肯定要枚举位置,然后找公共子串然后再去掉重复的,但是他的地址对应的rank不是连续的,如果暴力找的话会n*n会超时。
从这个博客学习到一种方法:首先对整个字符串求一次sa[]以及height[],之后对于任意区间[L, R],遍历一遍sa[],只要起点在[L, R]内的后缀就需要进行统计,类...
分类:
编程语言 时间:
2015-01-23 20:12:09
阅读次数:
239
Code: 1 // 找出两个字符串中的最大公共子字符串 2 // 如"nbitheimanb"和"itheia"的最大公共子串是:"ithei" 3 4 #import 5 6 int main(int argc, const char * argv[]) { 7 @autorele...
分类:
其他好文 时间:
2015-01-20 17:42:27
阅读次数:
179
转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/38924981近期在项目工作中有一个关于文本对照的需求,经过这段时间的学习,总结了这篇博客内容:求两个字符串的最大公共子串。算法思想:基于图计算两字符串的公共子串。详细算法思想參照下...
分类:
编程语言 时间:
2015-01-17 12:36:23
阅读次数:
231
最长公共子序列时间限制:3000 ms | 内存限制:65535 KB 难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个...
分类:
其他好文 时间:
2015-01-16 16:00:46
阅读次数:
145
题意:
给两个串,问有多少长度大于等于K的公共子串(位置不同也算一对)
题解:
后缀自动机DP
对第一个串建立后缀自动机,然后做一些预处理,
然后拿第二个串在后缀自动机上跑,到每个节点加一次贡献。
但是这样需要每个点往parent树上跑一遍,会TLE,所以可以加个lazy。
然后代码中有两次运用到拓扑序来从子向父推DP值。
呃,说得乱糟糟的。
Orz No_stop
不...
分类:
其他好文 时间:
2015-01-14 15:35:14
阅读次数:
209
http://www.lydsy.com/JudgeOnline/problem.php?id=2946题意:给n个串,求最大公共子串。(1using namespace std;const int N=2005<<1;struct sam { int cnt, root, last, l[N], ...
分类:
其他好文 时间:
2015-01-12 20:48:18
阅读次数:
152
题目链接:POJ - 2774题目分析题目要求求出两个字符串的最长公共子串,使用后缀数组求解会十分容易。将两个字符串用特殊字符隔开再连接到一起,求出后缀数组。可以看出,最长公共子串就是两个字符串分别的一个后缀的 LCP ,并且这两个后缀在 SA 中一定是相邻的。那么他们的 LCP 就是 Height...
分类:
编程语言 时间:
2015-01-10 18:04:48
阅读次数:
197