摘要:
最长重复子串最长重复子串问题描述给定一个字符串,求出其最长重复子串例如 abcdabcd最长重复子串是 abcd最长重复子串可以重叠例如abcdabcda这时最长重复子串是 abcda中间的 a 是被重叠的。直观的解法是,首先检测长度为 n - 1 的字符串情况,如果不存在重复则检测 n - 2, 一直递减下去,直到 1 。这种方法的时间复杂度是 O(N * N * N),其中包括三部分,长度纬度、根据长度检测的字符串数目、字符串检测。改进的方法是利用后缀数组后缀数组是一种数据结构,对一个字符串生成相应的后缀数组后,然后再排序,排完序依次检测相邻的两个字符串的开头公共部分。这样的时间复杂度为: 阅读全文