Mô phỏng thuật toán Phân tích Lyndon (Duval)

Lyndon Factorization · Nhóm: Chuỗi

Phân tích Lyndon (Duval) (Lyndon Factorization), nhóm Chuỗi.

Mã Python

def duval(s):
    n = len(s)
    i = 0
    while i < n:
        j, k = i + 1, i
        while j < n and s[k] <= s[j]:
            if s[k] < s[j]:
                k = i
            else:
                k += 1
            j += 1
        while i <= k:
            yield s[i:i + j - k]
            i += j - k

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