我尝试使用多种实现,但所有实现都存在缺陷。
在SO上搜索得到了http://www-igm.univ-mlv.fr/~lecroq/string/node14.html - 看起来很不错,但是这个实现给了我错误的结果 - 有时它无法找到一个字符串。
我花了几个小时的时间来查找错误。
在SO上搜索得到了http://www-igm.univ-mlv.fr/~lecroq/string/node14.html - 看起来很不错,但是这个实现给了我错误的结果 - 有时它无法找到一个字符串。
我花了几个小时的时间来查找错误。
以下代码行看起来不错:
j += MAX(bmGs[i], bmBc[y[i + j]] - m + 1 + i);
但是y是char*类型,而char类型是有符号的!这意味着y[i+j]可能是负数(在我的测试中发生了这种情况)。
我的问题是:在哪里可以找到正确的Boyer Moore算法实现?