我正在尝试实现Rabin来查找子字符串;我陷入了滚动散列(试图使用)中。unsigned long long rolling_hash(const char *str) unsigned long long hash = 0; for(int i = 0, k = str_len -1; i < str_len; i++, k--) {
hash = hash + str[i] * pow(257,
我一直试图理解一个算法类的Rabin算法.我很难理解它,所以我尝试实现它(我实际上不需要实现它)。我想除了滚动哈希函数之外,我什么都能理解。目前,我的算法只在模式char[]匹配文本char[]的开头时才有效。我不知道我的滚动散列哪里出了问题。如果有人能帮我指出错误的方向,我会非常高兴的。private static int int_mod(int a, int b) return (a%b +b)%b;
public static int rabin_Karp(ch
我一直在使用C++中的Rabin字符串匹配函数,但没有得到任何结果。我有一种感觉,我没有正确地计算一些值,但我不知道哪一个(或多个)。void rabinKarp(string sequence, string pattern, int d, int q);void rabinKarp(string sequence, string pattern, int d, int q) //d is the |∑| int n = sequenc