【问题标题】:Suffix vs Prefix Trie后缀与前缀特里树
【发布时间】:2016-02-15 20:58:19
【问题描述】:

我知道有人问过类似的问题 (Prefix vs Suffix Trie in String Matching),但接受的答案并没有帮助我理解我的问题。 问题是:后缀 trie 比前缀 trie 有什么优势?

【问题讨论】:

    标签: algorithm data-structures trie


    【解决方案1】:

    后缀尝试允许您选择字符串的开头并查看它们匹配多长时间。它可能类似于原始问题的已接受答案,但这是我能做的最好的。

    【讨论】:

    • 前缀树也可以做到这一点。那么为什么要使用后缀 trie 呢?
    • 添加字符串的所有前缀将产生一个类似于一条路径的特里树,它是字符串本身。如何在该 trie 上运行字符串匹配算法?
    • 如果您正在谈论添加前缀反转顺序并寻找字符串的反转顺序前缀特里树工作,但它与后缀特里树相同,正常顺序是它的方式:D 你为什么要反转吗?
    • 我猜子字符串匹配在前缀树中不起作用,因为每个前缀子字符串都以相同的字符开头。这是原因之一吗?
    • 没错就是这样。
    【解决方案2】:

    你可以试试看 aho-corasick 算法。它是一个有限状态机,基本上它使用一个特殊的前缀树,其中包含从前缀到树中最长的第一次出现的故障链接。基本上它是对 trie 的广度优先搜索。 AC 用于快速多模式匹配。

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 2011-10-05
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多