看了 tly 的 blog 挺有感触的,于是决定把难学难懂(至少对于我这种较钝的人来说)的字符串算法进行梳理与总结(也有新知,有了新的认识会重写)。
这是个长期计划,希望不会咕。
§ Part. 0 用语
∆ Part. 0-1 符号
定义字符串 (从 开始编号,以 C++ 的 char*
来理解吧)。
- :字符串 的长度。
- : 为 前缀。
- : 为 后缀。
- :同 。
- :同 。
- : 的 子串。
- :将 个字符串 拼接起来。
- :把 个 拼接起来。
∆ Part. 0-2 用语
- Border:
§ Part. 1 KMP
∆ Part. 1-1 KMP 的内容
说一下所谓 next 数组的本质:所有前缀的最大 border。