特点:比较指针不回溯(相对于主串),模式串按照(已匹配的)最长公共前后缀匹配回溯

    https://www.cnblogs.com/c-cloud/p/3224788.html
    https://www.bilibili.com/video/BV1M5411j7Xx/?spm_id_from=autoNext 这个比较好,遇到冲突,回退next数组前一个的值对应的下标。此回退为while循环一直回退到0知道复合要求

    1. 列出子串最长公共前后缀表
    2. 逐个比较子串的第一个字符与主串比较起始位置的字符,若不同,主串比较起始位置i++
    3. 若相同,逐个比较子串的下一个字符与主串的下一个字符,直到完全匹配完成或匹配失败
      1. 此时,移动主串的起始位置,移动位数 = 已匹配的字符数 - 对应的部分最长公共前后缀长度i=i+移动位数

    核心:最长公共前后缀标出求解
    发生冲突后按下列步骤求解
    IMG_20211018_171550.jpg
    使用下面的next数组更好求解,具体实现见下一篇
    image.png