王道408---DS---串
主要内容就是KMP算法
KMP
串的一些基本概念
1、子串/模式串
串中任意多个连续的字符组成的子系列叫做字串
2、主串
包含字串的串称为主串
3、模式匹配(pattern matching)
字串的定位操作称为串的模式匹配,是求子串在主串中的位置
算法
- 首先写出PM(Partial Match)部分匹配值
- 写出next数组(next数组可分为两种,一种是下标从0开始,一种是下表从1开始),需要注意的是next数组与PM数组总是错位一格
- 写出nextval
nextval原理如下:
使用nextval的时候,一般会选择从下标1开始计数,否则会出现下标为-1的情况,还得额外处理,比如:
注意点:
1、PM开局为0
2、next数组下表为0的时候,开局就是-1,且必须为负一
3、PM下标从1开始