mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-25 18:08:48 +08:00
Update
This commit is contained in:
@ -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」「简历模板」「数据结构与算法」等等,就可以获得我多年整理的学习资料。
|
||||
|
||||
|
Reference in New Issue
Block a user