0

在 Boyer Moore 算法中,当只应用坏后缀规则时,我们有一个字符的针,算法是否将字符与大海捞针中的所有字符进行比较?

我已经尝试过实现它,但是每当我使用一个字符时,我都会得到一个 nullPointerException 作为指向数组的指针,我的指针指向 -1。我无法粘贴代码,因为它是作业的一部分,而且我似乎无法弄清楚如何解决搜索一个字符的问题,所以我只是针对这种情况实施了一个简单的蛮力搜索。

4

1 回答 1

1

如果模式由一个字符组成,则算法别无选择,只能检查每个字符,直到找到匹配项。

考虑当您搜索单字符模式时会发生什么。您首先检查模式的最后一个字符可以匹配 (0) 的第一个可能位置,并且在字符串不匹配的地方,没有匹配的后缀——因此您没有足够的信息来取消下一个字符的资格作为比赛的潜在部分。

于 2013-11-14T19:45:40.883 回答