****:
https://www.bilibili.com/video/av3246487?from=search&seid=2581354634386413165
笔记如下
数组组成如下:
求子串的next值:
其中i,j对应的为位置,根据其对应位置上的值计算某一位置字母不匹配时回溯的位置,如果两字符相同,则i++,j++,如果两字符不同:i不变,j回溯到前一位置对应的回溯位置。
下图中第一行为字符串,第二行为对应的位置,第三行为回溯位置。
第一步:j=0,i=1,对应a≠b,则在位置1下方填写0。
执行操作:j不变,i++。
第二步:j=0,i=2,对应a≠c,则在位置2下方填写0。
执行操作:j不变,i++。
第三步:j=0,i=3,对应a=a,则在位置3下方填写1。
执行操作:j++,i++。
第四步:j=2,i=4,对应b=b,则在位置4下方填写2。
执行操作:j++,i++。
第五步:j=2,i=5,对应c≠y,则在位置3下方填写1。
执行操作:i不变,j回溯到位置2对应的回溯位置0
第六步:j=0,i=5,对应a≠y,则在位置5下方填写0。
结束