我正在解决一些涉及 Rabin–Karp 字符串搜索算法的问题。该算法要求滚动哈希比简单搜索更快。本文介绍如何实现滚动哈希。我没有问题地实现了“Rabin-Karp rolling hash”,发现很少有实现实现,但文章还提到了计算复杂性,并且首选通过循环多项式对 n-gram 进行散列。它链接到这种技术的BuzHash实现,但我想知道如何使用它在其之上构建 n-gram 哈希。我想要这样的东西或
CPHash cp = new CPHash("efghijk");
cp.shiftRight('l') // now we got hash of "fghijki"
cp.shiftLeft('d') // "defghi"
对于java。