mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
@ -117,7 +117,7 @@ next数组就是一个前缀表(prefix table)。
|
|||||||
|
|
||||||
此时就要问了**前缀表是如何记录的呢?**
|
此时就要问了**前缀表是如何记录的呢?**
|
||||||
|
|
||||||
首先要知道前缀表的任务是当前位置匹配失败,找到之前已经匹配上的位置,在重新匹配,此也意味着在某个字符失配时,前缀表会告诉你下一步匹配中,模式串应该跳到哪个位置。
|
首先要知道前缀表的任务是当前位置匹配失败,找到之前已经匹配上的位置,再重新匹配,此也意味着在某个字符失配时,前缀表会告诉你下一步匹配中,模式串应该跳到哪个位置。
|
||||||
|
|
||||||
那么什么是前缀表:**记录下标i之前(包括i)的字符串中,有多大长度的相同前缀后缀。**
|
那么什么是前缀表:**记录下标i之前(包括i)的字符串中,有多大长度的相同前缀后缀。**
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ next数组就是一个前缀表(prefix table)。
|
|||||||
|
|
||||||
# 为什么一定要用前缀表
|
# 为什么一定要用前缀表
|
||||||
|
|
||||||
这就是前缀表那为啥就能告诉我们 上次匹配的位置,并跳过去呢?
|
这就是前缀表,那为啥就能告诉我们 上次匹配的位置,并跳过去呢?
|
||||||
|
|
||||||
回顾一下,刚刚匹配的过程在下标5的地方遇到不匹配,模式串是指向f,如图:
|
回顾一下,刚刚匹配的过程在下标5的地方遇到不匹配,模式串是指向f,如图:
|
||||||
<img src='https://code-thinking.cdn.bcebos.com/pics/KMP%E7%B2%BE%E8%AE%B21.png' width=600 alt='KMP精讲1'> </img></div>
|
<img src='https://code-thinking.cdn.bcebos.com/pics/KMP%E7%B2%BE%E8%AE%B21.png' width=600 alt='KMP精讲1'> </img></div>
|
||||||
|
Reference in New Issue
Block a user