算法|字符串匹配(查找)-KMP算法

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

BF算法的思路比较简单,但执行效率太低,例如下题,目标串中蓝色部分,匹配失败后我们可以直接跳到下划线处开始匹配,减少匹配次数,提高执行效率。

蓝色表示匹配成功的字符,红色表示匹配失败的字符(下文均为此)

目标串:BBC   ABCDAB   ABCDABCDABDE

模式串:ABCDABD

基于此,可以考虑对BF算法进行优化,也就是KMP算法。

以一道具体的问题,来看看算法改进后的匹配过程

目标串:a b a b c a b c a c b a b

模式串:a b c a c

第一次匹配:a b a b c a b c a c b a b

你可能感兴趣的:(算法之美)