Базовые приёмы
Счётчик, накопитель, флаг, два указателя.
Шаблоны, которые решают половину задач
Хорошая новость: большинство простых задач строятся на нескольких повторяющихся приёмах. Это как базовые приготовления в кулинарии — научившись жарить и варить, вы готовите сотни блюд. Освойте эти шаблоны — и многие задачи станут узнаваемыми «о, это же накопитель».
1. Накопитель (аккумулятор)
Заводим переменнуюИменованное хранилище для значения. Имя связывается со значением через присваивание: x = 5., идём по данным и что-то в ней накапливаем: сумму, количество, произведение.
Схема всегда одна: «завести count = 0 → пройти циклом → при условии увеличить». Меняется лишь условие и что накапливаем.
2. Флаг (булева переменная)
Заводим True/False, чтобы запомнить факт: «нашли ли мы что-то», «всё ли в порядке». Часто можно выйти раньше через return, как только факт установлен.
Тут вместо отдельной переменной-флага мы сразу возвращаем результат: при первом же нарушении порядка — False, а если дошли до конца без нарушений — True. Это частый и аккуратный приём.
3. Два указателя
Два индексаНомер позиции элемента в последовательности. В Python нумерация с нуля: первый элемент — индекс 0. двигаются навстречу друг другу с краёв строкиТекстовое значение в кавычках: "привет". Неизменяема. По-английски string (str). или спискаИзменяемая упорядоченная коллекция элементов: [1, 2, 3]. По-английски list.. Классика для проверки палиндромов и работы с отсортированными массивами.
Указатель left идёт от начала, right — от конца. На каждом шаге сравниваем симметричные символы и сдвигаем указатели к центру. Если все пары совпали — это палиндром.
Предскажите вывод. Что вернёт is_palindrome("аба")? Подсказка: указатели встретятся в центре, сравнив крайние «а».
Вернёт True: крайние «а» совпали, в центре одна буква, читается одинаково в обе стороны.
Комментарии
Загрузка…
Загрузка комментариев…