Trie算法查询

时间:2015-10-07 03:00:16

标签: algorithm trie

我正在研究构造句子的简单问题,没有空格和标点符号。所以它需要字典才能找到这样的单词是否存在。例如。下面是我如何使用dict在python中创建trie的示例。

Trie = {o: {on: {one: ""}}}

现在我的问题是,“on”和“one”都是有效的单词,在上面的问题中我会总是选择最长的匹配因此“on”这个词不会被考虑但是如果我想写这样的代码我该如何去做?就像密钥的值不是另一个字典然后它的一个字但是对于“on”键将是另一个包含更长字的字典,这里是“one”。我不能“开”指向“'并同时指向另一个字典!

某处出了点问题,也许还有另一个算法可以解决这个问题。链接到资源对我来说很好

1 个答案:

答案 0 :(得分:0)

引入一个特殊键,表示父可以被视为叶节点。 说self.places = [json objectForKey:@"results"]; [self.tableView reloadData]; 是我的特殊关键。我的特里看起来像:

'$END$'

然后你可以检查dict是否为空或者是否包含特殊键。