代码之家  ›  专栏  ›  技术社区  ›  avd

字符串搜索算法

  •  9
  • avd  · 技术社区  · 16 年前

    对于两种字符串搜索算法:KMP和后缀树,哪种情况下优先?举一些实际例子。

    1 回复  |  直到 16 年前
        1
  •  11
  •   IVlad    16 年前

    如果你需要回答很多问题,比如“大海捞针了吗?”,那么后缀树就更好了。如果您只需要在另一个字符串中搜索一个字符串,而不必多次搜索,KMP会更好。

    here . KMP对于查找一个字符串是否是另一个字符串中的子字符串非常有用。

    您可能还需要检查其他算法,例如 Boyer-Moore Rabin-Karp 甚至是天真的算法,因为在某些情况下(输入),其中一个是优于其他。

    1. 如果您有很多像我上面提到的那样的查询,那么构建一个后缀树然后更快地回答每个查询是值得的。