KMP算法中nextval与滑动距离如何本质为?

摘要:题目回顾 来自《王道2027数据结构考研复习指导》课后习题 4.2.4 KMP算法使用修正后的 next 数组(即 nextval)进行模式匹配。 已知模式串: S = 'aabaab' 问题
题目回顾 来自《王道2027数据结构考研复习指导》课后习题 4.2.4 KMP算法使用修正后的 next 数组(即 nextval)进行模式匹配。 已知模式串: S = 'aabaab' 问题: 当主串某个字符与 S 的某个字符失配时, S 向右滑动的最长距离是多少?
学习背景说明 在哔站的课程中,这几章的课后习题通常是: 前面的题由呼呼老师讲解最后一题由咸鱼老师讲解 而这道题正好是由咸鱼老师讲解的。 由于两位老师的讲解思路略有不同: 一种偏向直观推导(呼呼老师)一种偏向公式总结(咸鱼老师) 这就导致不少同学在切换思路时出现理解断层,感觉“好像听懂了,又好像没完全懂”。 下面我将按照呼呼老师的思路,完整还原这道题的推导过程。
为什么这题容易出错 这道题看似简单,但实际有两个关键难点: next 和 nextval 容易混淆不清楚滑动距离的计算方式 很多同学会算 nextval,但不知道如何求“滑动距离”,这是失分的主要原因。 手写笔记:
第一步:按步骤求 nextval 数组(核心过程) 这一部分是很多同学最容易“似懂非懂”的地方,下面按照一种更直观的理解方式来推导。 首先记住改进后的 KMP 算法特点:程序能够记住扫描过的所有字符 。
阅读全文