九章算法 | Netflix 面试题 : Longest Repeating Substring

撰文 | JZ
专栏 | 九章算法


题目描述

给出一个字符串str,找到最长重复不小于k次的子串,输出长度,子串可以有重叠部分,但不能完全重叠。


思路点拨

可以通过枚举子串+hash的方法做到O(n^2),当然如果用算法竞赛中的后缀数组+二分答案可做到O(nlogn)。


考点分析

枚举子串计数很容易想到,不过能想到用hash优化字符串比较那一步就能将复杂度降一个维度。这里做hash需要边枚举边hash。


九章参考程序

https://www. jiuzhang.com/solution/l ongest-repeating-substring/


九章算法 | Netflix 面试题 : Longest Repeating Substring