---
round: 3
ticket_no: 5
source_no: 10
slug: valid-anagram
topic: Hash Table
difficulty: Easy
leetcode_id: 242
attempted: true
score:
verdict:
reviewed_at:
---

# Билет 05 — Valid Anagram

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

Даны две строки `s` и `t`. Верните `true`, если `t` является анаграммой `s`.

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

Constraints: `1 <= s.length, t.length <= 5 * 10^4`; строки состоят из строчных английских букв.

## Ответ

> Здесь два варианта решения. Первое — мы можем отсортировать оба строки, символы этих строк, получить новые строки, сравнить их — это первый вариант. Второй вариант: мы накапливаем хэш для каждого из этих строк, сколько каждый символ встречался, и потом сравниваем эти хэши. Давай про вот это решение говорить. Значит, что у нас тут? Длина может быть такая не слишком большая, вот ну вот эти хэши небольшие по размеру получаются, так что тут ничего страшного. То есть мы тут просто проходим таким образом, действуем.

## Разбор

**Что верно:**

**Что упущено и ошибки:**

**Эталонная идея:**

**Время:** O(...) — что доминирует

**Память:** O(...) дополнительная (+ O(...) на выход / стек рекурсии)

**Граничные случаи:** 1) ... 2) ... 3) ...

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

**Канон сложности:** сверить с [`../complexity-cheat-sheet.md`](../complexity-cheat-sheet.md) (таблица по 32 задачам)

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