Z-function · Nhóm: Chuỗi
Z-function (Z-function), nhóm Chuỗi.
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.