Longest Duplicate Substring
题目
Given a string S, consider all duplicated substrings: (contiguous) substrings of S that occur 2 or more times. (The occurrences may overlap.)
Return any duplicated substring that has the longest possible length. (If S does not have a duplicated substring, the answer is “”.)
Example 1:
Input: “banana”
Output: “ana”
Example 2:
Input: “abcd”
Output: “”
Note:
2 <= S.length <= 10^5
S consists of lowercase English letters.
暴力法
面试的时候遇到这题了,然后刚开始没注意,以为是求最长子串,说了最长子串的思路后面试官又说是求最长重复子串,但是想着用动态规划,但是找不到状态方程,又想到最简单的穷举法,面试官还给提示了,最后也没写出来,可能面试挂了吧。
也不知道为什么,面试的时候大脑一片空白,但是下来自己理清思路后暴力法也是可以解决的,题目给的示例能过,但最后还是超时了。
思路其实很简单,将子串从1到n一个一个比较。开始以一个字母遍历,看哪个子串的重复数最大,b,a,n,a,n,a,一个字符是