文章来源:c_cloud KMP
思想
KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(The Knuth-Morris-Pratt Algorithm,简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息
首先介绍几个算法的术语:
- 前缀
前缀指除了最后一个字符以外,一个字符串的全部头部组合