# Two ways to solve bracket sequence validation

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

## Задача

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

## Решение

```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://dev.to/devnote2319/account-pools-for-multi-platform-posting-ljc1x-2dpe) · [стандартную](https://dev.to/devnote2319/scheduling-retries-in-a-publishing-pipeline-95hfg-4njh) · [вместо](https://ymcatexasyg.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/event-8b6a5c.pdf) · [написать](https://www.sendspace.com/file/o38f0krg) · [скобка](https://collection87444.mataroa.blog/blog/681-ac-30d/) · [алгоритма](https://discuss.tchncs.de/post/65441908) · [стека](https://dev.to/devnote2319/idempotent-publishing-jobs-rs4i7-22dm) · [сверяется](https://jaflysilve.freeflarum.com/d/24164-24164-valeriia-makusheva-nude-gallery-with-leaked-lingerie-photos) · [показывает](https://blog.spikyhair.club/oz7f59b9/turbanli-twitter-hijab) · [одинаковых](https://kappa.lol/7XRxHp) · [сравню](https://dev.to/devnote2319/scheduling-retries-in-a-publishing-pipeline-xnj6q-4bf2) · [первое](https://statics.pancake.vn/web-media-264/58/ef/e1/57/b0a35db281bdcb039a24bbd1a52b6fccf5aed88052a473a410c3c4a9.pdf) · [библиотеку](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/hannapunzel-e2d780.pdf) · [копировать](https://www.booksie.com/791019-two-ways-to-solve-the-fibonacci-sequence) · [ручной](https://hey.xyz/posts/6jy2afdv36nf743x16) · [stack](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-4c7be-544k) · [тестах](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az2Z66UtHS7cFKpnzXo5mf91qFs1ZG/issues/a7c76d3dfe49c41e15358c46a6c83a88adb37f91) · [подходом](https://kappa.lol/lL7bjs) · [каждого](https://kappa.lol/ygJ4eO) · [коротко](https://hey.xyz/posts/12qbem4nar0vd1k4jfh) · [скобки](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/digit-sum-razbor-mwdyvho7.md) · [работает](https://radicle.network/nodes/seed.cielago.xyz/rad%3AzwC16xAq6afVSGLyH25o6GyE7dxE/issues/06f89d15f77d55fddf217309be9807c47404cd73) · [сравнить](https://jaflysilve.freeflarum.com/d/24013-24013-gvgai-pian) · [закрывающая](https://u.pcloud.link/publink/show?code=XZC9ffJZxsBE6hnwW1zaH9QRiOFuSkgCVk9X) · [решение](https://dev.to/devnote2319/idempotent-publishing-jobs-otj2e-gin) · [попавшийся](https://craftworldgame.com/simge+baranko%C4%9Flu+18?f=instapaper) · [pairs](https://dev.to/devnote2319/idempotent-publishing-jobs-9r51p-7mk)

