一.学习视频推荐(要按顺序看nou):
1.【】 https://www.bilibili.com/video/BV1jb411V78H/?(这节课让你了解kmp算法原理)
2.王卓数据结构P67(代码思路但不写代码)
3.https://www.bilibili.com/video/BV16X4y137qw/?(kmp核心思想代码实现)
二.kmp算法就是BF算法的升级版,主串中是否含有模式串只与模式串有关,这里我们就会用到next数组,通过学习我们可以知道,next数组还有进阶版,但是代码实现都是相同的
void GetNext(string s,int next[]){
int i=1,j=0,next[1]=0;//数组下标从一开始
while(i<=s.length()){
if(j==0||s[i]==s[j])next[++i]=++j;
else j=next[j];
}
}