Tag: boyer moore

Boyer Moore算法实现?

在C中是否有Boyer-Moore字符串搜索算法的工作示例? 我看了几个网站,但它们看起来很漂亮,包括维基百科。 谢谢。

Boyer-Moore良好后缀启发式

我理解不良角色启发式的工作方式。 当您找到不匹配的字母x ,只需移动图案,使图案中最右侧的x与字符串中的x对齐。 并且它很容易在代码中实现。 我想我也理解良好后缀的启发式方法是如何工作的。 当我们找到一个好的后缀s ,在模式中的不同位置找到相同的后缀并移动它,使模式中的s与字符串中的s对齐。 但我不明白如何在代码中这样做。 我们如何找到模式中另一个地方是否存在相同的后缀? 我们如何知道它的立场? 代码: void bmPreprocess1() { int i=m, j=m+1; f[i]=j; while (i>0) { while (j<=m && p[i-1]!=p[j-1]) { if (s[j]==0) s[j]=ji; j=f[j]; } i–; j–; f[i]=j; } } 来自http://www.iti.fh-flensburg.de/lang/algorithmen/pattern/bmen.htm对我没有意义……有人可以为此任务编写尽可能简单的伪代码吗? 或者以某种方式解释?