Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: stack, bracket, sequence, validation

Как проверить корректность открытия и закрытия скобок в строке?

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

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

Корректность скобок обычно проверяют с помощью стека. Мы идём по строке слева направо и кладём открывающие скобки в стек. Когда встречаем закрывающую скобку, проверяем, что в стеке есть соответствующая открывающая. Если в конце строка обработана и стек пуст — последовательность корректна.

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

Определение

Проверка корректности скобок — это алгоритмическая задача, цель которой определить, правильно ли открывающие и закрывающие скобки сбалансированы и вложены в строке.


Базовая идея алгоритма

Перед использованием конкретных шагов важно понимать общий принцип:
алгоритм должен учитывать порядок, тип и вложенность скобок.


Основные шаги проверки

  1. Создать пустую структуру данных для хранения открывающих скобок.

  2. Последовательно пройти по всем символам строки.

  3. Если символ — открывающая скобка, сохранить её.

  4. Если символ — закрывающая скобка:

    1. Проверить, что ранее была открывающая.

    2. Проверить, что тип скобок совпадает.

  5. После обработки строки убедиться, что не осталось незакрытых скобок.


Пример на Python

def is_valid_brackets(s: str) -> bool:
    stack = []
    pairs = {')': '(', ']': '[', '}': '{'}

    for char in s:
        if char in pairs.values():
            stack.append(char)
        elif char in pairs:
            if not stack or stack.pop() != pairs[char]:
                return False

    return not stack

Типичные ошибки

  • Проверка только количества скобок без учёта порядка

  • Отсутствие проверки на пустой стек

  • Игнорирование разных типов скобок


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

Использование стека — надёжный и простой способ проверки корректности скобочной последовательности. Такой алгоритм легко читается, работает за один проход и подходит для production-кода.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • Python

    Python

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

#stack

#bracket

#sequence

#validation

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

  • Аватар

    Python Guru

    Sergey Filichkin

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