TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.35K subscribers
Post #6262 1.9K
Использование алгоритма Бойера-Мура-Хорспула в Java с примером решения задачи с LeetCode

Алгоритм Хорспула используется для нахождения подстроки в строке. Например, у нас есть строка «The game is over» и подстрока «over». Алгоритм Хорспула вернет значение первого вхождения подстроки «over» в строку «The game is over», а именно 12.

Фактически, данный алгоритм является упрощенным алгоритмом Бойера-Мура, который, считается работает лучше, чем стандартный алгоритм на случайных текстах, но в худшем случае его скорость равна |needle| * |haystack| вместо 3 х |haystack|.

Тем не менее, для восприятия, на мой взгляд, он гораздо проще.

Итак, погнали.

Условие задачи с leetcode: https://leetcode.com/problems/find-the-index-of-the-first-occurrence-in-a-string/description/

Как работает алгоритм?

Строка и подстрока совмещаются по первому символу, и начинаются сравниваться от последнего символа к первому.

Для примера возьмем строку: «aabcdadbc» и подстроку «adb»

Совмещаются строки следующим образом (слева направо):


Читать: https://habr.com/ru/articles/831562/?utm_campaign=831562

@a_cup_of_java | Другие наши каналы
  • ❤ 3
  • 🔥 2
More from @a_cup_of_java
  1. Oct 14, 2026Spring Boot и PostgreSQL: дедлок может быть в транзакциях Приложение получило ошибку 40P01…
  2. Oct 14, 2026Развёрнутое пояснение: 1. Создаётся session, реализующий AutoCloseable: при закрытии он вы…
  3. Oct 14, 2026Post #8693
  4. Oct 13, 2026Post #8692
  5. Oct 13, 2026Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации…
  6. Oct 13, 2026Spring Boot Actuator: свои проверки здоровья и доступ к диагностике В Spring Boot 4 провер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →