Проверка корректности вложенных скобок

Для нескольких типов скобок используйте стек открывающих символов. Каждая закрывающая должна соответствовать вершине; в конце стек должен быть пустым.

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

Что ответить на собеседовании

Для нескольких типов скобок используйте стек открывающих символов. Каждая закрывающая должна соответствовать вершине; в конце стек должен быть пустым.

Подробный разбор

Ответ с пояснениями

Условие

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

Ответ

Для нескольких типов скобок используйте стек открывающих символов. Каждая закрывающая должна соответствовать вершине; в конце стек должен быть пустым.

def valid_brackets(text):
    pairs = {')': '(', ']': '[', '}': '{'}
    stack = []
    for char in text:
        if char in '([{':
            stack.append(char)
        elif char in pairs:
            if not stack or stack.pop() != pairs[char]:
                return False
    return not stack

Другие символы этот вариант игнорирует; при требовании «только скобки» их нужно отклонять. Регулярные выражения не используются. Время O(n), память O(n) в худшем случае.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее