教程 https://www.cnblogs.com/victorique/p/8480093.html 论文(下面的题目论文里基本上都有) https://wenku.baidu.com/view/5b886b1ea76e58fafab00374.html A. 不重叠最长重复子串 ...
分类:
编程语言 时间:
2019-04-09 15:15:19
阅读次数:
143
题目:给定一个字符串,求最长重复子串,这两个子串不能重叠。例如,str = "acdcdcdcd",则不可重叠的最长子串为"cdcd"。 思路:二分枚举+height数组分组。这道题的思想很巧妙,后面要仔细推敲。先二分答案,把题目变成判定性问题:判断是否存在两个长度为k的子串是相同的,且不重叠。解决 ...
分类:
其他好文 时间:
2019-01-28 00:52:20
阅读次数:
146
题目:求最长重复子串长度(可重复或者可交叉),例如 str = "abcbcbcbc",则最长重复子串为 "bcbcbc",最长重复子串长度为6。 思路:这道题用暴力解法的话不太现实,就算能实现效率也比较低。那这里用到的就是后缀数组+高度数组就能解决问题,这里有个规律:任何的子串都是某一个后缀数组的 ...
分类:
其他好文 时间:
2019-01-27 21:58:43
阅读次数:
227
1、最长的重复子串 寻找一个字符串中最长的重复子串 最大后缀方法思路: 1. 用字符串指针数组保存用户输入的字符串的所有后缀字符串; 2. 将后缀字符串集合进行排序; 3. 比较相邻字符串的公共子串长度,找到长度最大值,保存相应字符串即为所求 空间复杂度:求长度为n的字符串的后缀,需要O(n)的空间 ...
分类:
其他好文 时间:
2018-08-27 12:46:32
阅读次数:
165
重复子串即两后缀的公共前缀,最长重复子串,等价于两后缀的最长公共前缀的最大值。问题就转化成了,求height数组中长度为K的子串中的最小值的最大值。 Code: 整体思路并不是很难,有几处需要注意的地方:一个是后缀数组的求解过程中的一些小细节,一个是最后统计答案的时候单调队列操作的处理顺序。 ...
分类:
编程语言 时间:
2018-08-19 12:57:59
阅读次数:
150
这两道题是我在面试中亲身经历的,在面试滴滴的过程中,我遇到过最大子数组和,在面试阿里的过程中,我遇到过最长重复子串。 1. 最大子数组和 比如,给定一个数组, 1, -2, 3, -4, 5, 6, -7 应该输出, 11。 2. 最长重复子串 比如,给定一个字符串, "hello, my name ...
分类:
编程语言 时间:
2018-08-10 23:15:28
阅读次数:
210
题目链接: 题意 给一串整数,问最长不可重叠最长重复子串有多长 注意这里匹配的意思是匹配串的所有元素可以减去或者加上某个值 例: 34 30 26 22 18 82 78 74 70 66 后5个整数的串可以匹配前5个数 思路 LCP问题(最长公共前缀) 两个思路 1. 后缀数组 对height数组 ...
分类:
其他好文 时间:
2018-08-03 18:04:50
阅读次数:
130
1. 求字符串的最长重复子串 例如:aaaaaaaaabbbbcccaaassscvvv这里面的最长重复子串为aaaaaaaaa 算法思路:算法时间复杂度(O(n)) 1. 将这一个字符串先转成char数组; 2. 将这一char数组进行遍历 3. 比较char数组中第i-1个与第i个的字符是否相等 ...
分类:
编程语言 时间:
2018-07-09 01:10:22
阅读次数:
202
Description "题库链接" 给定一个长度为 $n$ 的字符串,求至少出现 $k$ 次的最长重复子串,这 $k$ 个子串可以重叠。 $1\leq n\leq 20000$ Solution 预处理好 $height$ 之后,比较显然的是答案就是一段连续 $k$ 个后缀内最小 $height$ ...
分类:
其他好文 时间:
2018-07-04 22:52:10
阅读次数:
177