KMP字符串匹配(python描述)
KMP匹配字符串时,如果匹配字符失败了,并不从头再匹配,而是回溯到一个特定的位置,这个位置和需要匹配的字符串有关,用next数组记录匹配每个位置失败时要回溯的位置。这样就能减少回溯和匹配的次数,从而提高计算效率。
计算next数组:
def GetNext(s:str)->list:
n = len(s)
k = 0
Next = [-1]#首个匹配失败会返回-1
for i in range(1,n):#从第二个字符开始匹配
Next.append(k
原创
2022-02-12 22:29:50 ·
412 阅读 ·
0 评论