Изменения

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

Префикс-функция

26 байт добавлено, 19:46, 12 мая 2014
Описание алгоритма
Пусть мы хотим узнать значение <tex>s[i]</tex>. Для этого посмотрим на значение <tex>p[i]</tex>: если <tex>p[i] =0</tex> тогда в <tex>s[i]</tex> запишем новый символ, иначе <tex>s[i] = s[p[i]]</tex>. Обратим внимание, что <tex>s[p[i]]</tex> нам уже известно, так как <tex>p[i] < i</tex>.
=== Реализация ===
'''string''' buildFromPrefix('''int'''[] p):
s = ""
'''for''' i = 0 '''to''' p.length - 1: '''if''' p[i] == 0:
s += new character
'''else:'''
s += s[p[i]]
'''return''' s

Навигация