KMP算法,计算failure function的问题。
高洛峰
高洛峰 2016-11-09 14:34:08
0
2
1031
def compute_fail(pattern):
    fail = [0 for i in range(len(pattern))]
    m = len(pattern)
    j = 0
    i = 1
    while i < m:
        if pattern[i] == pattern[j]:
            fail[i] = j + 1
            j += 1
            i += 1
        elif j > 0:
            j = fail[j-1] #这里为什么要回到上个字节匹配的值,而不是直接从0开始。
        else:
            fail[i] = 0
            i += 1
    return fail

在下个字节匹配失败之后,为什么不直接从开始匹配,而是要回到上个字节匹配的位置?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!