串这一章在408考试大纲中隶属于查找部分
而且近几年涉及的串的内容都是KMP算法,根据王道老师分析408考试中KMP算法求next数组只会考手算方法,因此这里只介绍KMP算法传统的手算求next数组。
KMP算法
手算求next数组
在上一节我们介绍了KMP算法以及next数组的使用方法,而这一节我们讨论next数组的求法
第一趟
任何next数组的next【1】都是0。
第二趟
任何next数组的next【2】都是1。
第三趟
第四趟
第五趟
第六趟
总结
next[1]都⽆脑写0
next[2]都⽆脑写1
其他next:在不匹配的位置前,划⼀根美丽的分界线模式串⼀步⼀步往后退,直到分界线之前“能对上”,或模式串完全跨过分界线为⽌。此时j指向哪⼉,next数组值就是多少