Изменения

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

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

14 байт убрано, 19:17, 5 марта 2016
Псевдокод
'''int''' i = 0
'''int''' j = t[0] = -1
'''while''' i < x.size()
'''while''' j > -1 '''and''' x[i] != x[j]
j = t[j]
'''void''' aG('''string''' x, '''string''' y):
'''int''' l, t[x.size()]
<font color=green>//предподсчет <tex>-</tex> вычисление массива <tex>t</tex></font>
getT(x, t)
'''for''' l = 1; x[l - 1] == x[l]; l++
'''if''' l == x.size()
l = 0
<font color=green>//поиск <tex>-</tex> вычисление позиций вхождения <tex>x</tex> в <tex>y</tex></font>
'''int''' j = 0
'''int''' k = 0
'''while''' j <= y.size() - x.size() '''while''' i < x.size() '''and''' x[i] == y[i + j]
++i
'''if''' i >= x.size()
'''while''' k < l '''and''' x[k] == y[j + k]
++k
Анонимный участник

Навигация