假设我有一个trie数据结构,它包含许多字符串。要在trie中查找字符串,我将从根开始,并按照顺序遵循带有字符串适当字符的指针,直到到达给定的节点为止。
现在,假设我想为同一组字符串构建一个“反向trie”,在这里,我不会以第一个字符开始查找字符串,而是从最后一个字符开始查找字符串。
是否有一种将尝试转化为反向尝试的有效算法?在最坏的情况下,我总是可以列出trie中的所有字符串,然后将它们一次一次地插入到反向trie中,但似乎有一个更好、更聪明的解决方案。
发布于 2013-01-11 05:18:14
但是,如果排序条件是基于字符串反向的,则trie中的节点本质上是随机的。也就是说,给定按字母顺序排列的序列[aardvark, bat, cat, dog, elephant, fox],倒转单词不会给出序列[xof, tnahpele, god, tac, tab, kravdraa]。
换句话说,没有比构建反向trie更“聪明的解决方案”了。
https://stackoverflow.com/questions/14272106
复制相似问题