Изменения

Перейти к: навигация, поиск
Алгоритм
'''2:''' hp := hash(p[1..m])
'''3:''' h := hash(s[1..m])
'''4:''' for i from 1 to (n-m+1)
'''5:''' if h = hp
'''6:''' answer.add (i)
'''7:''' h := p <tex>\cdot</tex> h - <tex>p^{m}</tex>s[i] + s[i + m]
'''8:''' if ans.size = 0 '''9:''' return not found '''10:''' else '''11:''' return answer
7 строка была получена с помощью быстрого пересчёта хеша. Мы считаем, что <tex>s[n + 1]</tex> - пустой символ.
Анонимный участник

Навигация