# Solving and testing 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) по памяти в худшем случае.


## Проверка тестами

Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.

```python
assert is_valid(True) is not None  # базовая проверка вызова
assert is_valid(False) is not None  # и второй случай
```

Такой минимум уже защищает от случайной ошибки при правках кода.

С добавлением проверок решение становится самодокументируемым — сразу видно, что код делает.

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

[Хорошая](https://statics.pancake.vn/web-media-264/54/54/a3/54/e44a04a7fe8d9cbb30c9106fe76a00f06cbaf173cd16dcbf0dfa475d.pdf) · [Проверить](https://drop.xtrafrancyz.net/selif/4x0dnarcqa.pdf) · [становится](https://kappa.lol/W8pjG5) · [проверка](https://hey.xyz/posts/1svtqbk7ea4d4sseenm) · [примерах](https://articlescad.com/jerid-oiso-3d-hentai-art-collection-sfm-animations-377824.html) · [применение](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [минимум](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/t-rbanl-amc-k-2bc67a.pdf) · [памяти](https://discuss.tchncs.de/post/65444354) · [проверять](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sweetestmila-8ec0d2.pdf) · [времени](https://blogfreely.net/nataliarussell2/sophia-rayne-nude-photo-gallery-adult-nude-pictures-x4fq) · [стиль](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [наверх](https://privatebin.devol.it/?d5fd66cef8601f24#E2cpS6UHp4pCGQZhkBDVz14Uf1HzkwX2cQRPHQLYcCcv) · [решение](https://rentry.co/epyghwsn) · [Задача](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [проверок](https://statics.pancake.vn/web-media-264/29/8c/25/dc/4b90e60f414729b8784a3b754247b31afabad847a3d3f08e4cb195f4.pdf) · [stack.append(ch](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cheeky-kim-erome-4ccd4b.pdf) · [включая](https://hey.xyz/posts/qzgz5bkm3chm5ptejz) · [Такой](https://yakihonne.com/article/naddr1qvzqqqr4gupzqqdny0xc4gelmksvhvmk6taujgvpwdq2ycrjw9pm8l5ettpkukk0qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknqvfkx5cnqd35943kgwpn956rvv3s943rxenp95ensdfs8ymkvwp3xgcrvxlv4ge) · [конце](https://x-erc.com/coyodee+nude?f=instapaper) · [видно](https://hey.xyz/posts/2hg5gwk9hht1j26c1y1) · [верна](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/bubble-sort-shagi-mv954wu2.md) · [Проверка](https://hey.xyz/posts/prc7ygxsn7bpsr5eqj)

