代码随想录训练营第九天 | 28找出字符串中第一个匹配项的下标 459重复的子字符串

题目链接:28. 找出字符串中第一个匹配项的下标 - 力扣(Leetcode)459. 重复的子字符串 - 力扣(Leetcode)

KMP算法

1. 应用:字符串匹配

2. 基本思路:当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了

3. 难点:(1)如何记录已经匹配的字符串 (2)如何确定不匹配时,从哪个下标开始新的匹配

4. 重要概念:前缀,后缀,最长相等前后缀

(1)前缀表:前缀指不包括最后一个字符的所有以第一个字符开头的连续子串。前缀表记录下标i之前(包括i)的字符串中,有多大长度的相同前缀后缀,是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。

(2)后缀表:后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。

(3)最长相等前后缀

【tbc】

你可能感兴趣的:(leetcode,算法,职场和发展)