Алгоритм Бойера-Мура. Понимание хорошего примера изменения суффикса из ресурса курса

Хороший пример суффикса из ресурса курса.

SUSSENUSS

0! S = 2

1!SS = 6

2! USS = 8

3! NUSS = 5

8 для остальных из них.

Мой вопрос: почему!SS = 6, а не = 1, как в США после одного шага!SS?

1 ответ

Решение

!SS означает: "SS" - это суффикс, а "xSS" - нет (x!= "U").

  • Ваш текст заканчивается на "xSS", а ваш шаблон - на "USS"

После смещения рисунка вправо 1:

  • Ваш текст оканчивается на "SSy" (y неизвестно), а ваш шаблон снова на "USS"

Для y нет действительного значения, которое "SSy" могло бы соответствовать "USS"

Если сдвиг вправо 6

  • Ваш текст заканчивается на "USSabcde" (ab unknown), а ваш шаблон - на "USSENUSS"

Это может соответствовать, если 'abcde' == 'ENUSS'

Другие вопросы по тегам