Kmp算法
推荐视频 : https://www.bilibili.com/video/BV1Px411z7Yo?t=669 学习过程中,是参考这个Kmp讲解视频来学习的。
1.先理解Kmp算法的比较过程
推荐视频 : https://v.qq.com/x/page/t0386qcr36t.html
这里有Kmp的具体比较过程。
2.自己对Kmp算法的一个文字理解
为什么要弄一个回溯的a数组:
因为
1.先创建一个a数组,储存待比较的字符串的最长相等前后缀。
1.1示例图 :
字符串 A B A B C A B A 的示例图
A的最长相等前后缀默认为0 ,所以可以创建出一个这样的数组。
a [8] = {0 , 0 ,1 ,2 ,0 ,1 ,2 ,0};
1.2核心算法理解 :
假设字符串str2 { a b c }是要在字符串str {a b c a b d a}中找到一个相同的子串。
用 j = 0 指向 str的第一个字符位置。