【问题标题】:Hashing n-grams by cyclic polynomials - java implementation通过循环多项式散列 n-gram - java 实现
【发布时间】:2011-02-23 04:09:28
【问题描述】:

我正在解决一些涉及 Rabin–Karp 字符串搜索算法的问题。该算法要求滚动哈希比简单搜索更快。 This article 描述了如何实现滚动哈希。我毫无问题地实现了“Rabin-Karp rolling hash”,发现很少有实现implementations,但文章还提到了计算复杂性,并且首选通过循环多项式对 n-gram 进行散列。它链接到 BuzHash 这种技术的实现,但我想知道如何使用它在其上构建 n-gram 哈希。我想要this

CPHash cp = new CPHash("efghijk");
cp.shiftRight('l') // now we got hash of "fghijki"
cp.shiftLeft('d') // "defghi"

对于java。

对于遇到字符串搜索相关问题的人(比如我),我发现一些文章很有用:1, 2, 3

【问题讨论】:

  • 你确定,你的例子是对的吗?我不这么认为。

标签: java algorithm hash string-matching rabin-karp


【解决方案1】:

我最近发布了一个 Apache 许可的 Java 库,它实现了几个滚动哈希函数,包括 Cyclic 和 Rabin-Karp:

http://code.google.com/p/rollinghashjava/

https://github.com/lemire/rollinghashjava

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2014-03-19
    • 2013-09-10
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多