Re: Программирование наоборот
От: Pzz Россия https://github.com/alexpevzner
Дата: 22.04.25 09:18
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Когда уже такое будет?


Допустим, мы решаем задачу поиска подстроки в строке.

Наивное решение:

    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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.