From 62c7e768453a8d077ea6b5280336b28ae72022b1 Mon Sep 17 00:00:00 2001 From: Chen Jianzhang Date: Sat, 10 Aug 2024 21:37:50 +0800 Subject: [PATCH] Update 03.String-KMP.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改一处Latex数学式因为尾部空格导致无法正常显示的问题;将"a"修改为大写"A" --- .../02.String-Single-Pattern-Matching/03.String-KMP.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Contents/06.String/02.String-Single-Pattern-Matching/03.String-KMP.md b/Contents/06.String/02.String-Single-Pattern-Matching/03.String-KMP.md index b1826845..56b3bf3e 100644 --- a/Contents/06.String/02.String-Single-Pattern-Matching/03.String-KMP.md +++ b/Contents/06.String/02.String-Single-Pattern-Matching/03.String-KMP.md @@ -50,7 +50,7 @@ KMP 算法就是使用了这样的思路,对模式串 $p$ 进行了预处理 - $next[0] = 0$,因为 `"A"` 中无有相同前缀后缀,最大长度为 $0$。 - $next[1] = 0$,因为 `"AB"` 中无相同前缀后缀,最大长度为 $0$。 - $next[2] = 0$,因为 `"ABC"` 中无相同前缀后缀,最大长度为 $0$。 -- $next[3] = 1$,因为 `"ABCA"` 中有相同的前缀后缀 `"a"`,最大长度为 $1$。 +- $next[3] = 1$,因为 `"ABCA"` 中有相同的前缀后缀 `"A"`,最大长度为 $1$。 - $next[4] = 2$,因为 `"ABCAB"` 中有相同的前缀后缀 `"AB"`,最大长度为 $2$。 - $next[5] = 3$,因为 `"ABCABC"` 中有相同的前缀后缀 `"ABC"`,最大长度为 $3$。 - $next[6] = 0$,因为 `"ABCABCD"` 中无相同前缀后缀,最大长度为 $0$。 @@ -68,7 +68,7 @@ KMP 算法就是使用了这样的思路,对模式串 $p$ 进行了预处理 如果文本串 $T[i: i + m]$ 与模式串 $p$ 的失配是在第 $j$ 个下标位置发生的,那么: - 文本串 $T$ 从下标位置 $i$ 开始连续的 $j$ 个字符,一定与模式串 $p$ 的前 $j$ 个字符一模一样,即:$T[i: i + j] == p[0: j]$。 -- 而如果模式串 $p$ 的前 $j $ 个字符中,前 $k$ 位前缀和后 $k$ 位后缀相同,即 $p[0: k] == p[j - k: j]$,并且要保证 $k$ 要尽可能长。 +- 而如果模式串 $p$ 的前 $j$ 个字符中,前 $k$ 位前缀和后 $k$ 位后缀相同,即 $p[0: k] == p[j - k: j]$,并且要保证 $k$ 要尽可能长。 可以推出:文本串子串的后 $k$ 位后缀和模式串子串的前 $k$ 位是相同的,即 $T[i + j - k: i + j] == p[0: k]$(这部分是已经比较过的),不需要再比较了,可以直接跳过。 @@ -151,4 +151,4 @@ print(kmp("ababbbbaaabbbaaa", "bbbb")) - 【博文】[从头到尾彻底理解 KMP - 结构之法 算法之道 - CSDN博客](https://blog.csdn.net/v_JULY_v/article/details/7041827?spm=1001.2014.3001.5502) - 【博文】[字符串匹配的 KMP 算法 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2013/05/Knuth–Morris–Pratt_algorithm.html) - 【题解】[多图预警 - 详解 KMP 算法 - 实现 strStr() - 力扣](https://leetcode.cn/problems/implement-strstr/solution/duo-tu-yu-jing-xiang-jie-kmp-suan-fa-by-w3c9c/) -- 【题解】[「代码随想录」KMP算法详解 - 实现 strStr() - 力扣](https://leetcode.cn/problems/implement-strstr/solution/dai-ma-sui-xiang-lu-kmpsuan-fa-xiang-jie-mfbs/) \ No newline at end of file +- 【题解】[「代码随想录」KMP算法详解 - 实现 strStr() - 力扣](https://leetcode.cn/problems/implement-strstr/solution/dai-ma-sui-xiang-lu-kmpsuan-fa-xiang-jie-mfbs/)