****:

https://www.bilibili.com/video/av3246487?from=search&seid=2581354634386413165

笔记如下

数组组成如下:

KMP求子串的next值

求子串的next值:

其中i,j对应的为位置,根据其对应位置上的值计算某一位置字母不匹配时回溯的位置,如果两字符相同,则i++,j++,如果两字符不同:i不变,j回溯到前一位置对应的回溯位置。

下图中第一行为字符串,第二行为对应的位置,第三行为回溯位置。

 

KMP求子串的next值

第一步: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++。

 

KMP求子串的next值

第四步: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。

结束

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-02
  • 2022-12-23
  • 2022-12-23
  • 2021-09-23
  • 2022-12-23
猜你喜欢
  • 2021-05-13
  • 2021-08-20
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2021-06-18
  • 2021-08-18
相关资源
相似解决方案