---
round: 1
ticket_no: 20
source_no: 10
slug: valid-anagram
topic: Hash Table
difficulty: Easy
leetcode_id: 242
attempted: true
score: 2
verdict: partial
reviewed_at: 2026-09-12
---

# Билет 20 — Valid Anagram

## Условие (как предъявлено)

Даны две строки `s` и `t`. Нужно вернуть `true`, если `t` является анаграммой `s`, иначе `false`.

```
Input:  s = "anagram", t = "nagaram"  →  true
Input:  s = "rat",     t = "car"      →  false
```

Constraints: `1 <= length <= 5*10^4`, строчные английские буквы. Follow-up: как быть с Unicode?

## Ответ

> Так, ну здесь надо сделать посчитать хэш до одного и другого. Ну, то есть мы можем сделать следующим образом: ну, посчитать хэш одного. В хэше у нас ключ — это символ, а значение — это число вхождений. И мы можем таким образом структуру сделать, чтобы мы сначала хэш накапливаем, а когда второй элемент берём, мы оттуда всё вычитаем. Если у нас все значения нули, то всё совпало. Если где-то отрицательно или положительно осталось, ну, значит, не сработало такая история. Так, разницу с Юникодом не понимаю, в чём проблема. Но у каждого символа получается представлен несколькими байтами, например, четырьмя, ну или там двумя, я уже не помню точно. Это будет означать, что, ну просто у нас ключ Х будет побольше всего.

## Разбор

**Что верно:** частотный счётчик: накопить по первой строке, вычесть по второй, все нули → анаграмма — точный эталон.

**Что упущено и ошибки:** не названа сложность O(n) / O(1); не назван быстрый выход при разной длине строк; follow-up про Unicode разобран неточно: проблема не в «ключе побольше», а в том, что массив из 26 не работает — нужен hash по codepoints или работа с grapheme clusters.

**Эталонная идея:** return false if s.length != t.length; массив 26 (или tally), прибавить по s, вычесть по t, проверить нули.

**Сложность:** время O(n), память O(1) для латиницы

**Критерии:** идея ✅ · структура данных ✅ · сложность ❌ · граничные случаи ⚠️


**Разбор задачи:** [`../../algo-solutions/01-must-have/02-hash-table/10-valid-anagram.md`](../../algo-solutions/01-must-have/02-hash-table/10-valid-anagram.md)
