hw在索引字符串列表中搜索子字符串?

时间:2009-05-21 05:33:52

标签: string dictionary indexing

我正在实现字典,其中key是一个字符串keyword.suppose我在字典中有以下键。

垫的 饱和的 lat hon

现在,如果我搜索单个关键字,假设mathon将在恒定时间内搜索它。但如果我要搜索 hon ,我希望所有三个单词都可以在恒定时间或最短时间内进行检索在谷歌搜索的情况下。我的方法应该是什么? 并且是用于目的的字典数据结构吗?

字典的值是我需要向用户显示的项目列表,搜索可以是多个关键字。

1 个答案:

答案 0 :(得分:1)

this paper中所述,一个gaddag可能是你最好的选择。它是一个trie的变种,可以让你开始在一个单词的任何地方进行搜索,并向前和向后行走。它不是O(1)查找,但速度非常快,并且空间使用合理。

编辑:对于多个关键字,您可以单独搜索每个关键字,然后根据需要设置交集或联合。它可能比你想象的要快;至少值得实现的是最简单的算法,只有当它在分析时被证明是一个真正的瓶颈时才会丢弃。