# Solving and testing anagram checking (part c1ec)

Разберём решение и сразу накроем его тестами — это хороший стиль работы с кодом.

## Задача

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

## Решение

```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  # и второй случай
```

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

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

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

[последовательности](https://hey.xyz/posts/dvn9f6djhzda8gw2fz) · [случаи](https://blogfreely.net/nataliarussell2/starsession-taso-exclusive-star-sessions-photo-set) · [базовая](https://discuss.tchncs.de/post/65444569) · [вызова](https://paper.wf/sofia1985log/gacha-life-afton-family-rule34-gallery) · [простое](https://rentry.co/camotozze-238565) · [python](https://hey.xyz/posts/1yybm32y1n20nqeh2sg) · [правках](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/jakarakami-nude-e16da7.pdf) · [silent](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [sorted(b.lower](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-3c929d.pdf) · [минимум](https://articlescad.com/emma-loland-appetizing-amateur-teen-erotic-solo-gallery-378938.html) · [состоят](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-f664f4.pdf) · [второй](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-d7028f.pdf) · [крайние](https://hey.xyz/posts/347fa3fz7gjnd2h00z) · [return](https://blog.spikyhair.club/oz23c982/xdxx) · [становится](https://privatebin.devol.it/?0162646f5a22b9d3#FEeirfNqgWSF6HgsNxNWKMAydRFUJb6FC4aQ6dU6wyUh) · [одних](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Разберём](https://sway.cloud.microsoft/EmGpBJHPe4bSmJ5G) · [частотой](https://discuss.tchncs.de/post/65442647) · [сортировки](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/teenmarvel-kayley-ecd4fa.pdf) · [включая](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/berigalxy-6e1007.pdf) · [кодом](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az3j5bDjvwPPaRnUcGAntckQcgBmUa/issues/3a68fd0f37d0b30d54f5a71bd5204c7f65e482b1) · [случай](https://statics.pancake.vn/web-media-264/ac/5c/8f/08/ad8fbf426eaea398583b8e2b9dac18af136c34aa300ffadcc11704fc.pdf) · [Такой](https://jnowak62.wixsite.com/my-site-1/post/ms-sethi-video-viral-adult-clips-and-sexy-photos-of-shilpa-sethi) · [assert](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [стиль](https://articlescad.com/famille-nue-378980.html)

