Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: time, complexity

Какая временная сложность алгоритма проверки скобок в одну проходку?

Вопрос проверяет базовое понимание оценки эффективности алгоритмов и умение обосновать сложность по количеству операций.

Короткий ответ

Алгоритм проверки скобок за один проход работает за O(n), где n — длина строки. Мы проходим по каждому символу ровно один раз. Операции со стеком (append и pop) выполняются за постоянное время. Поэтому суммарно время линейное.

Длинный ответ

Определение

Временная сложность O(n) означает, что время работы растёт пропорционально размеру входных данных.


Почему получается O(n)

Перед подсчётом полезно разложить алгоритм на атомарные действия:

  1. Есть один цикл по строке длиной n

  2. На каждой итерации выполняется ограниченное число операций:

    1. Проверка типа символа

    2. Возможный append в стек

    3. Возможный pop из стека

    4. Сравнение типов скобок

Так как на каждый символ — константная работа, суммарно это O(n).


А что по памяти

Память в худшем случае — O(n), когда строка состоит только из открывающих скобок, и все они оказываются в стеке.


Практический смысл

  • Это оптимально для этой задачи: нельзя гарантированно проверить корректность, не посмотрев на каждый символ хотя бы раз.

  • Линейный проход хорошо масштабируется на длинных строках.


Краткий вывод

Однопроходная проверка скобок имеет O(n) по времени и O(n) по памяти в худшем случае, что является стандартным и эффективным решением.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Python

    Python

Ключевые слова

#time

#complexity

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.