59
правок
Изменения
→Описание алгоритма
[[Файл:Apostolico-Crochemore-Example.png]]
==Псевдокод==
'''void''' getT('''string''' x, '''int''' t[]): <font color=green>//функция, вычисляющая массив <tex>t</tex> для строки <tex>x</tex></font>
'''int''' i = 0
<font color=green>//этап предпосчета</font>
getT(x, t)
<font color=green>//вычисляем значение вычисление значения <tex>l</tex> </font>
'''for''' l = 1; x[l - 1] == x[l]; l++
'''if''' l == x.size
++k
'''if''' k <tex>\geqslant</tex> l
v.pushBack(j)<font color=green>// Найдена подстрока в позиции j</font>
j += i - t[i]
'''if''' i == l