Изменения
→Псевдокод
==Псевдокод==
'''Rabin_KarpRabinKarp''' (<tex>s[1..n]</tex>, <tex>p[1..m]</tex>) <tex>hp \leftarrow = hash(p[1..m])</tex> <tex>h \leftarrow = hash(s[1..m])</tex> '''for''' <tex>i \leftarrow = 1</tex> '''to''' <tex>n - m + 1</tex> '''if''' <tex>h = hp</tex> <tex>answer.add(i)</tex> <tex>h \leftarrow = p \cdot * h - p<tex>^{m} \cdot </tex> * hash(s[i]) + hash(s[i + m])</tex> '''if''' <tex>answer.size () == 0</tex> '''return''' <tex>not</tex> <tex>found</tex>
'''else'''
'''return''' <tex>answer</tex>
Новый хеш <tex>h</tex> был получен с помощью быстрого пересчёта. Следует считать, что <tex>s[n + 1]</tex> - пустой символ.
==Время работы==