【问题标题】:Converting a trie into a reverse trie?将 trie 转换为反向 trie?
【发布时间】:2013-01-11 05:12:43
【问题描述】:

假设我有一个 trie 数据结构,其中包含许多字符串。要在 trie 中查找字符串,我将从根节点开始,依次跟随标有字符串相应字符的指针,直到到达给定节点。

现在假设我想为同一组字符串构建一个“反向特里”,而不是通过以 first 字符开头来查找字符串,而是通过以下方式查找字符串最后一个字符。

是否有将尝试转换为反向尝试的有效算法?在最坏的情况下,我总是可以列出 trie 中的所有字符串,然后将它们一次一个地插入到反向 trie 中,但似乎有更好、更聪明的解决方案。

【问题讨论】:

  • 反向trie与原始trie没有明显的关系,所以可能没有更好的解决方案。

标签: string algorithm data-structures trie


【解决方案1】:

但是,如果您的排序标准基于字符串的反向,则您的 trie 中的节点基本上是随机顺序的。也就是说,给定序列[aardvark, bat, cat, dog, elephant, fox],它们是按字母顺序排列的,颠倒单词不会得到序列[xof, tnahpele, god, tac, tab, kravdraa]

换句话说,没有比构建反向尝试“更聪明的解决方案”了。

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2018-04-14
    相关资源
    最近更新 更多