1 字符串算法处理什么
字符串算法研究字符序列中的匹配、前缀、后缀、回文与循环结构。本章从逐字符比较出发,再讨论如何复用已经匹配的信息,避免重复工作。
2 学习路线
| 主题 | 核心问题 |
|---|---|
| 字符串朴素匹配 | 枚举每个起点,逐字符验证一个模式串 |
| 字符串哈希:进制哈希法 | 预处理前缀指纹,快速比较子串 |
| Manacher:线性时间最长回文子串 | 利用回文对称性,求所有中心的回文半径 |
| KMP 字符串匹配:只记一个状态转移 | 失配后保留最长可用前后缀,在线性时间内完成单模式匹配 |
| Trie 字典树 | 共享多个字符串的公共前缀,支持集合查询与前缀计数 |
| AC 自动机:多模式串匹配 | 结合 Trie 和失配指针,同时匹配多个模式串 |
| 最小表示法 | 在线性时间内选出字典序最小的循环移位 |
| Boyer–Moore:参考资料 | 从模式串末尾比较,利用失配信息跳过候选起点(当前仅迁移参考索引) |
先掌握字符串下标、前缀与后缀,再学习朴素匹配与字符串哈希。回文问题用 Manacher 处理对称性;单模式匹配在朴素做法的基础上学习 KMP。多个字符串的共同前缀可以用 Trie 字典树 组织;多模式匹配则在此基础上继续学习 AC 自动机。
3 相关题解
暂无相关题解