2012-01-16 36 views

回答

1

您可以将改进算法。

假设在树中的每个节点有2种类型的边缘

1)边缘“可能”,如果你在前缀,并得到了一些信件,所以新的前缀仍然可以从一些单词前缀的字典。

例如:词典aaa和aaabc,如果您在aaa并收到字母b,您将移动到aaab。

2)边缘“不”,如果你在前缀,并得到了一些信件,所以新的前缀不是字典,你说,在字典中的字心不是,然后继续下一个单词。

例如:词典aaa和aaabc,如果您在aaa并收到一封字母c,您可以说该单词不是在字典中,然后进入下一个单词。

要构建树,你需要O(总长度字典)时间和O(长度)来检查每个字,所以这会导致O(输入)算法。

1

一个字典的一点是,它有助于由使用的数据结构进行搜索。

例如,对于一个哈希表,你会采用哈希查找您在哈希表集合的每个成员。不需要使用子字符串搜索。

相关问题