简单介绍
KMP——快速模式匹配算法(字符串匹配算法)
主要用途:查找字符串,查找字符串"ab
"(目标字符串)在字符串"abc
"(待查找字符串)中出现的位置。
即查找字符串"abc
"是否包含字符串"ab
",如果包含,返回包含的起始位置
比如计算str中是否含有ptr,算法由两部分组成:
1、计算ptr
每一位及之前的字符串中,前缀 和 后缀 公共部分的最大长度的next数组
2、匹配ptr
和str
,当ptr
失配时,利用next数组,实现ptr
的最大后移,从而避免不必要的匹配,减少匹配次数
理解思路——关于next数组