Изменения

Перейти к: навигация, поиск

Алгоритм Апостолико-Крочемора

11 байт убрано, 15:24, 27 апреля 2020
Подправлен алгоритм
i++
j++
'''if''' i < m '''and''' x[i] == x[j]
t[i] = t[j]
'''else'''
'''vector''' aG('''string''' x, '''string''' y): <font color=green>//<tex>x</tex> {{---}} образец, <tex>y</tex> {{---}} текст</font>
'''int''' l
'''int''' t[x.size+ 1]
'''vector''' v
'''if''' i == l
k = max(0, k - 1) <font color=green>// если <tex>i = l</tex> и <tex>x[i] \neq y[i + j]</tex>, тогда следующая тройка <tex>(l, j + 1, \max(0, k - 1))</tex></font>
'''else''' '''if''' t[i] <tex>\leqslant</tex> l <font color=green>// если <tex>t[i] \leqslant l</tex>, тогда следующая тройка <tex>(l, i + j - t[i], \max(0, t[i]))</tex></font> k = max(0, t[i]) i = l '''else''' <font color=green>// если <tex>t[i] > l</tex>, тогда следующая тройка <tex>(t[i], i + j - t[i], l)</tex></font> k = l i = t[i]
'''return''' v
Анонимный участник

Навигация