Categories: Ai

Использование алгоритма Бойера-Мура-Хорспула в 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»

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

Читать далее

Share
Published by

Recent Posts

Магия CSS на практике: советы по вёрстке от гика. Часть 4

Хабр, привет! Я снова пришёл к вам со статьёй, где показываю мои любимые техники вёрстки.…

2 месяца ago

JavaScript: структуры данных и алгоритмы. Часть 5

Привет, друзья! В этой серии статей мы разбираем структуры данных и алгоритмы, представленные в этом…

2 месяца ago

Реализация событий через HTTP

Для некоторых задач, связанных с обновлением данных в реальном времени — например, новостные ленты, уведомления…

2 месяца ago

Каннибализм трафика. Нужно ли вести контекст по брендовым запросам?

Со времён появления контекстной рекламы маркетологов не перестаёт мучить вопрос:"А есть ли смысл вести контекст по…

2 месяца ago

Презентация Apple 2024: новая кнопка на iPhone 16, функция слухового аппарата у AirPods, кинокамера в iPhone Pro

Накануне в прямом эфире прошла большая презентация новой техники от компании Apple. Команда Тима Кука…

2 месяца ago

Сразу два аналога Notion, бесплатный сервис аналитики для продавцов на WB – эти и другие российские стартапы

10 новых российских сервисов для нарезки шортсов при помощи ИИ, публикации в цифровых СМИ, авто-ответов…

2 месяца ago