PYTHON АЛГОРИТМ РАБИНА КАРПА
Алгоритм Рабина-Карпа – это алгоритм поиска подстроки в строке, который работает за линейное время. Он был разработан Майклом Рабином и Ричардом Карпом в 1987 году.
Основная идея алгоритма Рабина-Карпа заключается в том, чтобы вычислить хеш-значение подстроки и сравнить его с хеш-значением строки. Если эти значения совпадают, происходит дополнительная проверка на совпадение символов. Если совпадение не найдено, алгоритм продолжает поиск следующего хеш-значения.
Пример кода на Python:
def rabin_karp(text, pattern): n, m = len(text), len(pattern) if n < m: return -1 hpattern, htext, d, q = 0, 0, 256, 101 for i in range(m): hpattern = (d * hpattern + ord(pattern[i])) % q htext = (d * htext + ord(text[i])) % q dm = pow(d, m - 1) % q for i in range(n - m + 1): if hpattern == htext: for j in range(m): if text[i + j] != pattern[j]: break if j == m - 1: return i if i < n - m: htext = (d * (htext - ord(text[i]) * dm) + ord(text[i + m])) % q return -1
Этот код реализует алгоритм Рабина-Карпа для поиска подстроки в строке.
Лекція 16. Алгоритм пошуку в тексті. Алгоритм Рабина-Карпа
Лучшая книга про алгоритмы для начинающих. Грокаем алгоритмы.
Алгоритмы и структуры данных 5. Хеширование строк. Алгоритм Рабин-Карпа
Собеседование C# Junior developer, что спрашивают в 2021 году?! Техподдержка идет программировать.
Алгоритмы на Python 3. Лекция №11
Алгоритмы и структуры данных(Алгоритм Рабина-Карпа,Бор,алгоритм Ахо-Корасик), Мацкевич С.Е. 25.04.22
Алгоритм Рабина-Карпа. Создаем умный поиск информации (Ctrl + F).
Новые материалы:
- Python selenium яндекс браузер
- Чтение почты python
- Python trim функция
- Python время текущее
- Как написать шашки на python
- Python smtp сервер
- Парсер wildberries python
- Django несколько форм на одной странице
- Найдите сумму квадратов первых n натуральных чисел python
- Аннотация типов python
- Invalid literal for int with base 10 python что делать
- Интернет магазин на django
- Как создать телеграмм бота на python pycharm
- Лучшие gui для python
- Python алгоритм брезенхема