# Solving and testing anagram checking (part 6c24)

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

## Задача

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

## Решение

```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 удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

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

[silent](https://stills87362.mataroa.blog/blog/discover-the-ams-peach-imx-photo-gallery-elegant-art-modelling-set/) · [последовательности](https://discuss.tchncs.de/post/65439972) · [нескольких](https://news-ctl-posts.hashnode.dev/walking-through-removing-duplicates-from-a-list-part-27f2) · [тестов](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/unique-tests-mvgq5h9z.md) · [работы](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [проверка](https://hey.xyz/posts/2cy2fg3eczxcgyh1vxk) · [ошибки](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/gcd-oshibki-mvgynxxg.md) · [Задача](https://ecency.com/@tomasruzick4961/slipper-yt-minecraft-4a8a23) · [случайной](https://paste2.org/dD4Gcb0N) · [крайние](https://statics.pancake.vn/web-media-264/90/50/c8/c2/fb6cbae8dda64c336aa858956bccaddf5d2f9eaf2ca2bcca0b834aa8.pdf) · [тестами](https://kappa.lol/0bA9Ho) · [sorted(b.lower](https://laurasimon573.overblog.fr/2026/10/alientrashkitty-nude-5-leaked-onlyfans-photos-of-kitty.html) · [словарь](https://sdubois211.wixsite.com/my-site-1/post/lisina_free-porn-ekaterina-lisina-nude-photo-gallery) · [базовая](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/dog-show-cart-99af81.pdf) · [памяти](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [sorted(a.lower](https://alexweber21.wixsite.com/my-site-1/post/imperiaofhentai) · [наглядные](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az3mJpMkmUk4FwijAUZ1BvoprvCMjn/issues/85cd52afad54c9c9ad6c3579f7fd471d27b48137) · [Хорошая](https://rentry.co/roe-163-674293) · [защищает](https://paper.wf/juliabraun03log/sks-bb-wmm-fydywht-bhy-ndr-wmthyr) · [отсортированные](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/sophie-monk-date-movie-eb3f96.pdf) · [ломается](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [частотой](https://wangari.africa/%E5%B4%A9%E9%93%81%E6%9C%AC%E5%AD%90?f=instapaper) · [фреймворков](https://sofiasimon341.overblog.fr/2026/10/the-last-of-us-porn-sara.html) · [одинаковые](https://blogfreely.net/catherine-vasilyev70/sotwe-turk-ifsa-en-guncel-ifsa-videolari-ve-fotograflari) · [Такой](https://radicle.network/nodes/index.radicle.garden/rad%3Az3wkkFfpn9KNMdwiM96ovH9FUakeH/issues/5dc250e174086f0f8cbfa6b7bf763f17cc4469a3)

