后缀数组看了好几个小时,才明白了工作原理,了解后缀数组可以看下面的论文 论文: 罗穗骞《后缀数组——处理字符串的有力工具》,百度很容易找到 主要介绍几个简单应用 1.模式串匹配 2.可重复最长重复子串 3.不可重复最长重复子串 4.可重叠最长 k-重复子串 5.重复次数最多子串 6.最长回文串 7. ...
分类:
编程语言 时间:
2016-08-08 17:12:53
阅读次数:
352
后缀数组。求不可重叠最长重复子串。 二分答案+验证。每一次二分,将排序完序的后缀按顺序进行分组。每组内任意两个的最长公共前缀要>=二分值。如果有一组内存在两个后缀的SA值相差大于等于二分值,那么这个二分值可行。 ...
分类:
其他好文 时间:
2016-07-30 13:22:55
阅读次数:
120
在上个星期面试一家公司的笔试题上面的最后一道题就是写程序查找一个字符串的最长重复子串。当时想了很长时间没想出什么好方法,就把一个算法复杂度比较高的算法写上去了。回来上机把那个算法写了一遍测试没问题,然后自己又到网上面查查还有什么方法,然后发现好像有种叫做后..
分类:
编程语言 时间:
2016-07-12 00:14:27
阅读次数:
450
REPEATS - Repeats no tags A string s is called an (k,l)-repeat if s is obtained by concatenating k>=1 times some seed string t with length l>=1. For e ...
分类:
编程语言 时间:
2016-06-29 20:24:22
阅读次数:
278
后缀数组国家集训队论文 论文上讲的很清楚。 最长不重叠重复子串问题。首先二分答案,对于每一个mid长度,按照后缀的height大于mid对height数组分组。 可以证明,答案在同一个height当中。维护每一组的最大最小sa值,差便是每一组的最大不重叠重复子串长度。如果大于mid就return t ...
分类:
编程语言 时间:
2016-05-18 21:53:45
阅读次数:
191
题目描述 如果一个字符串包含两个相邻的重复子串,则称他是“容易的串”,其他串称为"困难的串"。例如,BB,ABCDACABCAB,ABCDABCD都是容易的串,而D,DC,ABDAB,CBABCBAD都是困难的串。 题目描述 如果一个字符串包含两个相邻的重复子串,则称他是“容易的串”,其他串称为"困 ...
分类:
其他好文 时间:
2016-05-11 23:34:11
阅读次数:
383
困难的串
【题意】
如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”。例如, BB、ABCDABCD都是容易的串,而D、DC、ABDAD、CBABCBA都是困难的串。
输入正整数n和L,输出由前L个字符组成的、字典序第k个困难的串。例如,当L=3时,前7个困难的串 ...
分类:
其他好文 时间:
2016-05-07 10:34:08
阅读次数:
130
题目链接 题意:给定一个字符串,求重复次数最多的连续重复子串。 分析:(论文上的分析)先穷举长度 L,然后求长度为 L 的子串最多能连续出现几次。首先连续出现 1 次是肯定可以的,所以这里只考虑至少 2 次的情况。假设在原字符串中连续出 现 2 次,记这个子字符串为 S,那么 S 肯定包括了字符 r ...
分类:
编程语言 时间:
2016-05-01 14:53:00
阅读次数:
229
题目链接 题意:连续重复子串。给定一个字符串 L,已知这个字符串是由某个字符串 S 重复 R 次而得到的(L = S^R ), 求 R 的最大值。 分析:枚举长度,判断条件是能被总长度整除且LCP (suffix (0), suffix (i)) = n - i,预处理出lcp,方法是,lcp[i] ...
分类:
编程语言 时间:
2016-05-01 09:53:27
阅读次数:
249
题目链接 题意:可重叠的 k 次最长重复子串。给定一个字符串,求至少出现 k 次的最长重复子串,这 k 个子串可以重叠。 分析:与POJ 1743做法类似,先二分答案,height数组分段后统计 LCP>=m 的子串的个数。 ...
分类:
编程语言 时间:
2016-05-01 09:51:37
阅读次数:
256