Алгоритм Кнута-Морриса-Пратта (КМП) получает на вход слово и просматривает его слева направо буква за буквой, заполняя при этом массив натуральных чисел , где (функция l определена в предыдущем пункте). Словами: l[i] есть длина наибольшего начала слова ,одновременно являющегося его концом.
10.4.1. Какое отношение все это имеет к поиску подслова? Другими
словами, как использовать алгоритм КМП для определения того,
является ли слово A подсловом слова B?
10.4.2. Описать алгоритм заполнения таблицы .
Другими словами, нас интересуют начала Z слова одновременно являющиеся его концами -- из них нам надо выбрать самое длинное. Откуда берутся эти начала? Каждое из них (не считая пустого) получается из некоторого слова Z' приписыванием буквы x[i+1]. Слово Z' является началом и концом слова . Однако не любое слово, являющееся началом и концом слова ,годится -- над