【发布时间】:2019-08-09 03:49:45
【问题描述】:
给定一个字符串字典D和一个输入字符串S。我试图从 D 中找到某个字符串 p,它是 S 的前缀。
对于无序字典,最快的方法似乎是为 D 构建一个 trie 并与 S 的初始字符一起遍历该 trie。由于 D 中的字符串是无序的,因此这里最自然的搜索算法将是找到最长前缀 p 的算法。
但是,我需要为 D 中的字符串保留一个特殊的输入顺序。例如,对于 D = [bar, foo, foobar] 和 S = foobariously,上述搜索将产生 p = foobar,因为它是最长的前缀。但是我想得到 p = foo,因为 foo 出现在输入列表的前面。
这种前缀搜索最快的算法是什么?我认为基本方法仍然涉及 trie,但我不知道如何将原始排序集成到其中。
【问题讨论】:
标签: algorithm prefix-tree