KMP算法(Python)

起因

在牛客上做了一道KMP算法的题,按照我之前学习的代码进行计算发现结果是错误的,为了避免以后再次出现这样的问题,先把代码放上去,关于算法的设计以后看看再补上去。

后续

之前的代码并不是错误的,是因为答案中next数组的主程序和我之前代码的主程序不一样
我求的是next数组,并不是最长公共前缀后缀。下面的代码求得是next数组,例如

字符串 a b a b
next数组 -1 0 0 1
公共前缀后缀数组 0 0 1 2

next数组代码

def Next(T):
    i,j=0,-1
    next=[-1]*len(T)
    while i

我们有了next数组,就可以写主程序进行匹配了.

def match(P,T):
	i,j=0,0
    next=Next(P)
    while i

你可能感兴趣的:(沟沟道道,On,the,Way)