Наибольшая общая подпоследовательность Python Помогите ускорить

Помогите пожалуйста ускорить код на python! надо чтобы при входных данных длиной до 10000 символов программа работала меньше чем за 2 секунды.

a = input()
b = input()

n = len(a)
m = len(b)


dm = [0 for i in range(m + 1)]
d, di, dj, dij = 0, 0, 0, 0

for i in range(1, n + 1):
    dn = [0]
    for j in range(1, m + 1):
        di, dj, dij = dm[j], d, dm[j - 1] + 1
        d = di if di > dj else dj
        if a[i - 1] == b[j - 1]:
            d = dij if d < dij else d
        dn.append(d)

    d = 0
    dm = dn

print(dm[-1])

я сделал маленькую оптимизацию для памяти, чтобы хранилась только последние две строки матрицы и предыдущий ее элемент


Ответы (0 шт):