字符串中有多少个不同的子串?

时间:2015-01-06 20:08:00

标签: algorithm suffix-tree

我需要在O(n)中设计一个给定长度为n的字符串t的算法,计算t的不同子串的数量。

1 个答案:

答案 0 :(得分:0)

  1. 为输入字符串构建后缀自动机。

  2. 查找maxLength[v] - maxLength[suffixLink[v]] for all states v的总和,其中maxLength[v]是从根到v状态的最长路径,suffixLink[v]是此状态的后缀链接

  3. 在线性时间内构造后缀自动机是一个众所周知的问题。第二部分只是一个简单的遍历。因此,总时间复杂度为O(n)