使用后缀树的唯一子串

时间:2012-10-12 12:59:38

标签: c# c++ algorithm substring suffix-tree

对于长度为S的给定字符串n -

  • 查找S的所有唯一子字符串的最佳算法不能小于O(n^2)。因此,最好的算法会给我们O(n^2)的复杂性。根据我的阅读,可以通过为S创建后缀树来实现。

可以在O(n)时间内创建S的后缀树。现在,我的问题是 -

我们如何使用S的后缀树来获取SO(n^2)的所有唯一子字符串?

2 个答案:

答案 0 :(得分:2)

尝试阅读有关后缀数组:http://en.wikipedia.org/wiki/Suffix_array 此方法比后缀树更快,可以在字符串中获取子字符串。

答案 1 :(得分:1)

可以通过尝试最佳地完成。将字符串添加到trie并从根到遍历遍历。每个根节点路径将表示字符串的后缀。获取这些后缀的所有前缀。这些是独特的子串。