Статья 2296

Если проверяемая литера в слове не совпадает с соответствующей литерой текста, то слово двигается вправо относительно этой позиции, которую я буду называть опорной, до тех пор, пока какая-нибудь литера снова не совпадет с литерой текста в этой позиции. Если этого не произойдет, то слово сдвигается таким образом, чтобы его первая литера отстояла от опорной позиции на один интервал.
Сразу же возникает вопрос, как находят следующую совпавшую литеру, - ведь если для этого нужно сравнивать литеры по одной, то никакого выигрыша нет. Существует другой способ, завести таблицу расстояний от конца слова до последнего появления каждой буквы в этом слове. Конечно, нужно потратить определенное время на расчет такой таблицы, но сделать это необходимо только один раз если текст достаточно длинный, дело того стоит.