Здравствуйте, Буравчик, Вы писали:
Б>Когда уже такое будет?
Допустим, мы решаем задачу поиска подстроки в строке.
Наивное решение:
size_t s_len = strlen(s);
size_t subs_len = strlen(substr);
size_t i;
if (s_len < subs_len) {
return NULL;
}
for (i = 0; i <= (s_len - subs_len); i ++) {
if (!memcmp(s + i, subs, subs_len) {
return s + i;
}
}
return NULL;
Скажи мне, как таким путём "постепенных деформаций", о котором говоришь ты, прийти от наивного решения, как выше, к алгоритму Кнута — Морриса — Пратта?
https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9A%D0%BD%D1%83%D1%82%D0%B0_%E2%80%94_%D0%9C%D0%BE%D1%80%D1%80%D0%B8%D1%81%D0%B0_%E2%80%94_%D0%9F%D1%80%D0%B0%D1%82%D1%82%D0%B0