Mô phỏng thuật toán Z-function

Z-function · Nhóm: Chuỗi

Z-function (Z-function), nhóm Chuỗi.

Mã Python

def z_function(s):
    n = len(s)
    z = [0] * n
    l = r = 0
    for i in range(1, n):
        if i >= r:
            pass
        else:
            z[i] = min(r - i, z[i - l])
        while i + z[i] < n and s[z[i]] == s[i + z[i]]:
            z[i] += 1
        if i + z[i] > r:
            l, r = i, i + z[i]
    return z

Mở trang để xem mô phỏng từng bước và xuất slide bài giảng.