Код Senior Массивы и хеш-таблицы обновлено

Все начала анаграмм

Условие

Индексы всех подстрок s, являющихся анаграммами p.

Примеры

findAnagrams("cbaebabacd", "abc") // [0, 6]
findAnagrams("abab", "ab") // [0, 1, 2]
findAnagrams("a", "ab") // []

Как подойти

Пересечение двух паттернов: фиксированное окно и частоты. Сравнение словарей каждый шаг даёт O(n·алфавит); версия со счётчиком совпадений даёт чистое O(n) - назови как улучшение.

Подсказки: 2
  1. Окно фиксированной длины плюс сравнение частотных словарей.
  2. Нулевые счётчики надо удалять, иначе сравнение размеров врёт.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.