# Two approaches to bracket sequence validation (part 43d1)

Покажу решение и коротко сравню его с альтернативным подходом.

## Задача

Проверить, правильно ли расставлены скобки в строке из символов `()[]{}`.

## Решение

```python
def is_balanced(s: str) -> bool:
    pairs = {')': '(', ']': '[', '}': '{'}
    stack = []
    for ch in s:
        if ch in '([{':
            stack.append(ch)
        elif ch in pairs:
            if not stack or stack.pop() != pairs[ch]:
                return False
    return not stack


print(is_balanced("([]{})") )
```

## Как это работает

Это классическое применение стека: открывающая скобка кладётся наверх, закрывающая сверяется с вершиной. Если в конце стек пуст — последовательность верна.

## Пример работы

```text
True
```

## Сложность

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


## Альтернативный подход

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

Оба подхода рабочие; важно понимать цену каждого, а не копировать первый попавшийся.

**Читайте также:**

[каждого](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-d8e0ba.pdf) · [подхода](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [stack.pop](https://exhibit67768.mataroa.blog/blog/tango-premium-ifsa/) · [стандартную](https://rimworld.gallery/m/random/t/16284) · [важно](https://stills85746.mataroa.blog/blog/angel-the-dreamgirl-the-last-night/) · [Альтернативный](https://privatebin.devol.it/?d5fd66cef8601f24#E2cpS6UHp4pCGQZhkBDVz14Uf1HzkwX2cQRPHQLYcCcv) · [скобки](https://eda-rhinos.com.tw/2025-fubon-angels-plus-icash2-0?f=instapaper) · [худшем](https://hansenlucas58.wixsite.com/my-site-1/post/%EC%A0%9C%EB%8B%88-%EB%94%A5%ED%8E%98%EC%9D%B4%ED%81%AC-%EC%98%81%EC%83%81---%EB%B8%94%EB%9E%99%ED%95%91%ED%81%AC-%EC%A0%9C%EB%8B%88%EC%9D%98-%EB%94%A5%ED%8E%98%EC%9D%B4%ED%81%AC-%EC%98%81%EC%83%81) · [первый](https://kappa.lol/BS1mKu) · [первое](https://ecency.com/@karelnovotn6538/post-079984) · [stack.append(ch](https://wallybot.net/%E7%B1%B3%E8%83%A1%E6%A1%83?f=instapaper) · [Сложность](https://discuss.tchncs.de/post/65444246) · [символов](https://kappa.lol/5uRlCc) · [задачу](https://rentry.co/xxvidoe-2024-logo-design-506802) · [применение](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [конце](https://thebrainbin.org/m/random/t/1844346) · [работы](https://radicle.network/nodes/index.radicle.garden/rad%3Az3J6tRENJbnXSKkjJhwFhBHDJmT1P/issues/0796550ef8e232198a94f8a68b73051efc5190e3) · [вершиной](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [открывающая](https://drop.xtrafrancyz.net/selif/ubrlxupbzd.pdf) · [ручное](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/quicksort-razbor-mve2zqav.md) · [одинаковых](https://drop.xtrafrancyz.net/selif/zy4ifa8ndz.pdf)

