This commit is contained in:
youngyangyang04
2020-10-13 09:19:14 +08:00
parent 1e0c5e671b
commit f913dc3868
4 changed files with 86 additions and 58 deletions

View File

@ -36,22 +36,29 @@ KMP的经典思想就是:**当出现字符串不匹配时,可以记录一部
本篇将以如下顺序来讲解KMP
1. 什么是KMP
2. KMP可以解决什么问题
3. 分析KMP算法里的next数组
4. 什么是前缀表
5. 再分析为什么要是前缀表而不是什么哈希表其他表等等,偏偏要是前缀表。
6. 一步一步推导前缀表是怎么求的
7. 时间复杂度分析
8. 前缀表与next数组的关系
9. 如何使用next数组来做一遍匹配的过程
10. 构造next数组
11. 使用next数组进行匹配
12. 前缀表统一减一右移的KMP实现方式
13. 前缀表不减一的KMP实现方式
14. 总结
可以说步步相扣,大家要跟紧,哈哈。
* 什么是KMP
* KMP有什么用
* 什么是前缀表
* 为什么一定要用前缀表
* 如何计算前缀表
* 前缀表与next数组
* 使用next数组来匹配
* 时间复杂度分析
* 构造next数组
* 使用next数组来做匹配
* 前缀表统一减一 C++代码实现
* 前缀表不减一C++实现
* 总结
读完本篇可以顺便把leetcode上28.实现strStr()题目做了。
如果文字实在看不下去就看我在B站上的视频吧如下
* [帮你把KMP算法学个通透理论篇B站](https://www.bilibili.com/video/BV1PD4y1o7nd/)
* [帮你把KMP算法学个通透求next数组代码篇B站](https://www.bilibili.com/video/BV1M5411j7Xx/)
# 什么是KMP
@ -525,5 +532,7 @@ public:
可以说把KMP的每一个细微的细节都扣了出来毫无遮掩的展示给大家了
> 更多算法干货文章持续更新可以微信搜索「代码随想录」第一时间围观关注后回复「Java」「C++」 「python」「简历模板」「数据结构与算法」等等就可以获得我多年整理的学习资料。