【问题标题】:Finding longest common prefix in a ternary search tree在三元搜索树中查找最长的公共前缀
【发布时间】:2013-01-25 20:29:30
【问题描述】:

我为 20000 个单词实现了三元搜索树。我想知道一种算法来找到最长的公共前缀(至少由 2 个单词共享的前缀)? 无论如何要在树中找到最长的公共前缀?(没有三元搜索树)

【问题讨论】:

标签: algorithm sorting dictionary data-structures ternary-search-tree


【解决方案1】:

有一个非常简单的解决方案,它是线性复杂度,你知道 Rabin-Karp 是一个字符串匹配算法,它使用散列来做到这一点。想法是创建一个哈希表。您遍历所有单词,并在每个长度 1, 2, .. len( word ) 中将键(该子字符串的哈希值)放入表中,当您已经在表中拥有该键时,这意味着您有具有该哈希值的 2 个单词(至少)。然后你只需要找到具有该属性的最长索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-23
    • 2018-09-30
    • 2021-09-11
    • 1970-01-01
    • 2022-11-22
    • 2020-12-14
    • 2021-10-12
    • 1970-01-01
    相关资源
    最近更新 更多