用循环多项式对n-gram进行散列-java实现

用循环多项式对n-gram进行散列-java实现,java,algorithm,hash,string-matching,rabin-karp,Java,Algorithm,Hash,String Matching,Rabin Karp,我正在解决一些涉及Rabin–Karp字符串搜索算法的问题。该算法要求滚动哈希比原始搜索更快。描述如何实现滚动哈希。我实现了“Rabin-Karp滚动散列”,并没有遇到任何问题,也发现很少有实现,但本文还提到了计算复杂性,并且更倾向于使用循环多项式对n-gram进行散列。它链接到这种技术的实现,但我想知道如何使用它在上面构建n-gram散列。我想要一些像或 对于java 对于那些会遇到字符串搜索相关问题的人(比如我),我发现有些文章很有用:,我最近发布了一个Apache许可的Java库,它实现了

我正在解决一些涉及Rabin–Karp字符串搜索算法的问题。该算法要求滚动哈希比原始搜索更快。描述如何实现滚动哈希。我实现了“Rabin-Karp滚动散列”,并没有遇到任何问题,也发现很少有实现,但本文还提到了计算复杂性,并且更倾向于使用循环多项式对n-gram进行散列。它链接到这种技术的实现,但我想知道如何使用它在上面构建n-gram散列。我想要一些像或

对于java


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

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


你确定你的例子是对的吗?我不这么认为。
CPHash cp = new CPHash("efghijk");
cp.shiftRight('l') // now we got hash of "fghijki"
cp.shiftLeft('d') // "defghi"