Python-курс
🧠 Алгоритмы: основы

Базовые приёмы

Счётчик, накопитель, флаг, два указателя.

~45 минСредний 3 урока

Шаблоны, которые решают половину задач

Хорошая новость: большинство простых задач строятся на нескольких повторяющихся приёмах. Это как базовые приготовления в кулинарии — научившись жарить и варить, вы готовите сотни блюд. Освойте эти шаблоны — и многие задачи станут узнаваемыми «о, это же накопитель».

1. Накопитель (аккумулятор)

Заводим переменнуюИменованное хранилище для значения. Имя связывается со значением через присваивание: x = 5., идём по данным и что-то в ней накапливаем: сумму, количество, произведение.

accumulator.py

Схема всегда одна: «завести count = 0 → пройти циклом → при условии увеличить». Меняется лишь условие и что накапливаем.

2. Флаг (булева переменная)

Заводим True/False, чтобы запомнить факт: «нашли ли мы что-то», «всё ли в порядке». Часто можно выйти раньше через return, как только факт установлен.

flag.py

Тут вместо отдельной переменной-флага мы сразу возвращаем результат: при первом же нарушении порядка — False, а если дошли до конца без нарушений — True. Это частый и аккуратный приём.

3. Два указателя

Два индексаНомер позиции элемента в последовательности. В Python нумерация с нуля: первый элемент — индекс 0. двигаются навстречу друг другу с краёв строкиТекстовое значение в кавычках: "привет". Неизменяема. По-английски string (str). или спискаИзменяемая упорядоченная коллекция элементов: [1, 2, 3]. По-английски list.. Классика для проверки палиндромов и работы с отсортированными массивами.

two-pointers.py

Указатель left идёт от начала, right — от конца. На каждом шаге сравниваем симметричные символы и сдвигаем указатели к центру. Если все пары совпали — это палиндром.

💡Совет

Предскажите вывод. Что вернёт is_palindrome("аба")? Подсказка: указатели встретятся в центре, сравнив крайние «а».

predict-palindrome.py

Вернёт True: крайние «а» совпали, в центре одна буква, читается одинаково в обе стороны.

Шаг 1 из 6