KMP算法——KMP(Knuth-Morris-Pratt) 克努特—莫里斯—普拉特 操作
主要作用:字符串查找算法,常用于大型一个文本字符串中找一个模式字符串的出现文职。此算法由三人于1977年联合发表——Donald Knuth——唐纳德·克努特,Vaughan Pratt——沃恩·普拉特,James H. Morris——詹姆斯·H·莫里斯
我们先看最简单的解决思路:
例如:
我们说此种算法为暴力匹配算法。
下面分析一下:
发现问题,用KMP算法解决这样的问题。
KMP关键在next数组的分析和应用:
代码如下:
新的问题出现,需要分析和解决。
优化后的关键代码:
此文为KMP算法的展示,很多人都知道KMP算法,也会KMP算法,重点在于想让更多的人知道这一算法,字符串检索算法中最厉害的算法。