写在前面
写这篇文章是希望能帮助到那些看了讲述的原理视频后还不会求next数组的小伙伴(比如我就是),或者希望看例题再来巩固学习成果的小伙伴们。所以我这里就直接拿题目手动算next数组。
原理这里就不多说辣,因为网上有培训机构出的视频教学讲得很清楚,链接如下,个人认为是讲得是最好的之一。
推荐链接:kmp算法基础理解bilibili
例(1):
设acbcaca是模式串, 则它的next数组元素依次为?
首先在草稿纸上画一个表,和下面的差不多,熟练以后画不画都没关系,草稿纸也不用的。
(下面的方框连表格下一行的数字部分也框起来了,实际只是看上面的字母,懒得改了,这里说明一下。)
第一步:
眼睛看上面箭头指的两个地方:空白区域和a。a前面没有要找的字母,填0
第二步:两个箭头同时往右移动一个单元。这时出现了一个橙色的框,意思是比较橙色和蓝色框里面的字母。