# Solving and testing anagram checking (part bcc1)

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

## Задача

Определить, являются ли две строки анаграммами: состоят из одних и тех же букв с одинаковой частотой.

## Решение

```python
def are_anagrams(a: str, b: str) -> bool:
    return sorted(a.lower()) == sorted(b.lower())


print(are_anagrams("listen", "silent"))
```

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

Анаграммы дают одинаковые отсортированные последовательности букв. Сортировка — простое и наглядное решение; словарь частот дал бы ту же проверку без сортировки.

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

```text
True
```

## Сложность

O(n log n) из-за сортировки, O(n) по памяти.


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

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

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

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

Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

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

[решение](https://discuss.tchncs.de/post/65443340) · [короткие](https://kappa.lol/nHyLx1) · [последовательности](https://blogfreely.net/igorcollins26/isekaitube) · [проверку](https://katerinak33.wixsite.com/my-site-1/post/%E0%B9%80%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B9%81%E0%B8%A1%E0%B9%88%E0%B8%AA%E0%B8%AD%E0%B8%94-10-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%80%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%AB%E0%B9%89%E0%B8%B2%E0%B8%A1%E0%B8%9E%E0%B8%A5%E0%B8%B2%E0%B8%94-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%9E%E0%B8%B1%E0%B8%81%E0%B8%A3%E0%B8%B2%E0%B8%84%E0%B8%B2%E0%B8%96%E0%B8%B9%E0%B8%81-%E0%B9%81%E0%B8%A5%E0%B8%99%E0%B8%94%E0%B9%8C%E0%B8%A1%E0%B8%B2%E0%B8%A3%E0%B9%8C%E0%B8%84%E0%B8%AA%E0%B8%B8%E0%B8%94%E0%B8%A7%E0%B9%89%E0%B8%B2%E0%B8%A7) · [Сложность](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/fc2-61826a.pdf) · [сортировки](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [включая](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/tamil-mami-sex-video-6fed36.pdf) · [одних](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/awesome-asian-hooker-fucking-a-massive-d-35ab46.pdf) · [сразу](https://blogfreely.net/nathannazarov26/zorbas-adults-only-exclusive-mature-scenes-with-chanel-preston) · [случаи](https://montage34708.mataroa.blog/blog/some-me-time-chloe-surreal/) · [крайние](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [простое](https://gal94608.carrd.co/) · [являются](https://paperhill5271.bearblog.dev/) · [памяти](https://pavelpopa.wixsite.com/my-site-1/post/%D1%8E%D0%BB%D1%83%D0%B5%D1%80-yuluer-3d-%D1%85%D0%B5%D0%BD%D1%82%D0%B0%D0%B9-%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-honkai-star-rail-%D0%B8-genshin-impact) · [частотой](https://statics.pancake.vn/web-media-264/c9/f1/da/76/d916b55244c1ba41cc8a2a4a97ea74429ce8a317c05834b4077dadd2.pdf) · [одинаковые](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/factorial-tests-mvdv1yty.md) · [проверять](https://curated32439.mataroa.blog/blog/sprout-dandyaposs-world-rule34-scroller/) · [работает](https://writefreely.ethibox.fr/ozbb5198/nun-by-lilmoonie) · [защищает](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [проверки](https://articlescad.com/ok-xnx-384285.html) · [Проверка](https://news-ctl-posts.hashnode.dev/solving-and-testing-the-caesar-cipher-part-a272) · [учебных](https://blogfreely.net/nataliarussell2/sks-fy-lmwslt-mshhd-thrsh-wnyk-fy-lmtrw-wlhflt) · [Сортировка](https://articlescad.com/uwucaptain666-flaunts-her-huge-titties-in-the-shower-384450.html)

