具体请看论文....POJ1743 Musical Theme不重叠的最长重复子串#include #include #include #include using namespace std;#define N 20100int p[N];int sa[N],rank[N],height[N];i...
分类:
其他好文 时间:
2014-08-21 11:10:23
阅读次数:
229
首先这是一个单字符串问题。子字符串R 在字符串L 中至少出现两次,则称R 是L 的重复子串。重复子串又分为可重叠重复子串和不可重叠重复子串,这里只是简单讨论最长可重叠的重复子串.首先,最直接的方法就是子串和子串间相互比较,这样查看所有的子串对,时间复杂度为O(n^2)。最快的方法是使用后缀数组,如果子串R在L中重复出现,则R至少是L的两个后缀数组的前缀,后缀数组最难的就是如何构建后缀数组,网上有很...
分类:
其他好文 时间:
2014-08-20 16:32:32
阅读次数:
185
问题描述:
找出字符串中所以最长连续重复子串及其个数
比如:输入:123234,最大连续重复字符串为23,个数为2
输入:5555,最大连续重复字符串为555,个数为2
输入:aaabbb 最大连续重复字符串为aa,个数为2;和bb,个数为2
必须存在重复的字符串才算,只出现一次的不算。可能存在多个相同长度的不同字符串,比如aaabbb。
...
分类:
其他好文 时间:
2014-07-23 20:57:55
阅读次数:
239
KMP 匹配算法是由 "Knuth Morris Pratt" 提出的一种快速的模式匹配算法。hint:不为自身的最大首尾重复子串长度1.待解决的问题:假设P为给定的子串,T是待查找的字符串,要求从T中找出与P相同的所有子串,这称为模式匹配问题。 (可以给出子串在T中的位置) (下文中提到的P和T分...
分类:
其他好文 时间:
2014-07-18 20:04:50
阅读次数:
265
预备知识: 1. sort 使用时得注明:using namespace std; 或直接打 std::sort() 还得加上 #include 2. qort是qsort的升级版,如果能用sort尽量用sort,使用也比较简单,不像qsort还得自己去写 cmp 函数, 只要注明 ...
分类:
其他好文 时间:
2014-07-16 21:18:57
阅读次数:
217
对于最长不重复子串,某个当前的字符,如果它与前面的最长不重复子串中的字符没有重复, 那么就可以以它为结尾构成新的最长子串;如果有重复,且重复位置在上一个最长子串起始位置之后, 那么就与该起始位置之后的稍短的子串构成新的子串或者单独成一个新子串。 举个例子:例如字符串“abcdeab”,第二个字符a....
分类:
其他好文 时间:
2014-07-16 21:11:39
阅读次数:
130
在一个字符串中求不重复子串的最大长度是一个经典的贪心法求解问题(说子串自然是连续的,子序列则不要求连续)。
先给出leetcode上这题的描述:
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring wit...
分类:
其他好文 时间:
2014-07-03 16:24:55
阅读次数:
281
题比较容易读懂,但是建模需动点脑子:
一个子串加常数形成的子串认为跟子串相同,求最长不重叠重复子串
题目中说
is disjoint from (i.e., non-overlapping with) at least one of its other appearance(s)
意味着不能重叠,举个例子
1, 2,3, 52, 53,54
1,2, 3和 52, 5...
分类:
其他好文 时间:
2014-07-02 15:15:01
阅读次数:
289
题目链接Given a string, find the length of the
longest substring without repeating characters. For example, the longest
substring without repeating letter...
分类:
其他好文 时间:
2014-05-24 02:15:57
阅读次数:
291