Я хочу решить UVA 10298 -"Power Strings" проблема с использованием алгоритма KMP. В блоке this показано, как функция отказа может быть использована для вычисления минимальной длины подстроки. Этот метод выглядит следующим образом:Как использовать функцию отказа KMP для определения минимальной длины повторной подстроки?
- Вычислить префикс-суффикс-таблицу
pi[ ]
для данной строки. - Пусть
len
- длина строки, аlast_in_pi
- значение, хранящееся при последнем индексе таблицыpi
. - Проверьте, соответствует ли
len % (len - last_in_pi) == 0
или нет. Если это так, то длина повторяемой подстроки минимальной длины равна(len - last_in_pi)
, в противном случае это длина данной строки.
Я понимаю, что такое функция отказа и как она используется для поиска рисунка в тексте, но я изо всех сил пытаюсь понять доказательство правильности этой техники.
Я голосующий, чтобы закрыть этот вопрос как не по теме, потому что это не вопрос программирования. – Raptor
Если этот вопрос не подходит для переполнения стека, можете ли вы предложить мне, где я должен задать вопрос, чтобы получить хороший ответ? –
Это подходит для SO, потому что он спрашивает, как работает алгоритм. Это центральная точка тега алгоритма. – IVlad