介绍:
Boyer Moore算法用于在国彩网串内部进行模式搜索。这是3rd 模式搜索系列中的算法。
这个算法很容易理解。您只需要记住以下3点。
- 给定国彩网串“ s”和模式“ p”,我们从最右边的元素开始搜索。
- 发生不匹配时,应遵循以下2条规则之一:
- 如果不匹配国彩网不在模式p中,则我们跳过国彩网串s中的整个单词。
- 如果模式“ p”中存在不匹配的国彩网,那么我们将跳过直到模式“ p”中的国彩网与国彩网串“ s”中的国彩网匹配为止。
如果您无法关联或可视化,请不要担心。我们将借助一个例子来理解。
Consider the string S = “prodeveloper” And pattern P = lope.
我们从最右边的国彩网开始搜索,如下图所示
如果不匹配并且国彩网“ d;如果在模式“ p”中不存在国彩网串“ s”,我们将跳过直到“ d”。因此,在下一遍中将如下所示
再次有一个不匹配。但是国彩网串'l'出现在模式'p'中。因此,我们跳过国彩网串中的字母“ l”。因此,在下一遍中将如下所示:
现在再次从最右边开始,从模式“ p”中选中“ e”,然后输入国彩网串“ s”。这是一场比赛。类似地,我们对“ p”,“ o”,“ l”都进行匹配,因此得到了结果,子国彩网串出现在国彩网串s中。
Boyer Moore算法的实现
输出:
进一步阅读:
AJ关于DS和算法的权威指南。单击此处以学习算法和数据结构教程的完整列表。 85多个章节可供学习。
该网站上可用的教程列表:
C编程20+章 | C ++编程80+章 |
100多个编码问题 | 数据结构和算法85+章 |
系统设计20+章 | Shell脚本编写12章 |
4g LTE 60+章节 | 最常见的编码问题 |
5G NR 50+章 | Linux系统编程20+章 |