在给定后缀树中搜索模式需要O(m)时间,其中m是模式的长度。如何在文本中出现所有模式?我已经读过,如果有k个模式出现,那么在文本中找到它们的时间复杂度就是O(m + k)。但我无法理解这个O(+ k)时间复杂度。任何帮助!! [当然,预处理时间是O(n):n是文本的长度]。
答案 0 :(得分:0)
后缀树节点下面的叶子存储以节点上定义的前缀开头的后缀索引。因此,您只需要在后缀树中找到匹配搜索模式的节点后计算后代叶子。使用DFS,这可以在k(k)匹配的O(k)时间内完成。如果您只想计算有多少次出现,如果您首先使用DFS计算并存储每个节点下面的叶子数作为节点处的辅助信息作为计算后缀树后的额外预处理,则可以在恒定时间内完成此操作。 (还是O(n)时间)。