28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode)
kmp算法着实非常烧脑 还是结合代码随想录里面去看
自己也总结了一下 next数组里j的走法
next具体函数构建还要多练
自己也写了一下这个前缀表
- 前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串;
- 后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串
i表示后缀末尾 j表示如果匹配相同 i的前一个数 如果不匹配就找上一个j值知道完成匹配后的值 和相同相等前后缀的个数(如aabaa 前后缀相同是2:a aa aa a)
next和前缀表分为 四步
初始化
前后缀不相同
前后缀相相同
更新next数组
感觉脑子知道 手不会hhh