DEV//UNIT

Анаграммы

Те же буквы — то же слово: частоты символов решают за один проход.

время O(n)память O(алфавит)уровень: начальный
Что происходит сейчас0/0
Нажмите Play, чтобы запустить сценарий
TypeScript — активная строка подсвечена шагом
1function isAnagram(a: string, b: string): boolean {
2 if (a.length !== b.length) return false
3
4 const counts = new Map<string, number>()
5 for (const ch of a) counts.set(ch, (counts.get(ch) ?? 0) + 1)
6 for (const ch of b) {
7 const left = counts.get(ch) ?? 0
8 if (left === 0) return false
9 counts.set(ch, left - 1)
10 }
11
12 return true
13}

Проблема

Те же буквы — то же слово: частоты символов решают за один проход.

Что вы видите

Ряд счётчиков на каждую букву: первое слово добавляет, второе вычитает; все нули в конце — анаграммы.

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

Анаграммы содержат одинаковые буквы — значит, совпадают частоты. Считаем частоты первого слова, вычитаем второго: отрицательный счётчик или остаток — не анаграммы. O(n) без сортировки.

Пошаговый разбор

  1. 01

    Первое слово

    +1 за каждую букву.

  2. 02

    Второе слово

    −1 за каждую букву.

  3. 03

    Итог

    Все нули — анаграммы.

Complexity и ограничения

time
O(n)
space
O(алфавит)

Сложность см. в шапке страницы.

Edge cases

  • Пустой вход

    Корректная тривиальная обработка.

  • Вырожденный случай

    Минимум работы — сразу ответ.

Где встречается в реальности

Спелл-чекеры

Поиск опечаток-перестановок в словаре.

Настольные игры

Scrabble-ассистенты и генераторы анаграмм.

Дедупликация

Группировка текстов по буквенному составу.

Связанные алгоритмы

Shorts

«Одни буквы — разные слова. Проверка за один проход»

Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.

Shorts 9:16

Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.

Одни буквы — разные слова. Проверка за один проход
Нажмите Play
Бит 1/6 · 0–2 с
Hook
script-setup.ru/algorithms/anagram