个人学习——数据结构:KMP算法next函数序列计算

至于KMP是什么,next函数是什么我就不多说了,直接上方法:

  • 首先明确什么是前缀什么是后缀:
    abcd
    前缀:abc ab a
    后缀:d cd bcd
  • 例1 abaabcac
    这个字符串一共有8位,若没有前缀和后缀相等为其他情况,置1,若有相等,置长度加1,一位相等置2类似。。。。。
    1.第一位时,果断是0(函数说明里有,各种数据结构教材也有)
    2.第二位时刻,看的是‘a’(该位之前的字符串),属于其他情况 1
    3.看的是 ab 没有相等属于其他情况 1
    4.aba 可能出现前缀a和后缀a,即相等,长度为1,所以该位1+1=2
    5.abaa a 和 a 2
    6.abaab ab 3
    7.abaabc 1
    8.abaabca a 2
    所以结果为:01122312
  • 例2:abaabaca
    1.0
    2.1
    3.1
    4.a 2
    5.a 2
    6.ab 3
    7.aba 4
    8.1
    即:01122341
    原文作者:KMP算法
    原文地址: https://blog.csdn.net/songzige/article/details/49099997
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞