Код Senior Массивы и хеш-таблицы обновлено
Все начала анаграмм
Условие
Индексы всех подстрок s, являющихся анаграммами p.
Примеры
findAnagrams("cbaebabacd", "abc") // [0, 6]
findAnagrams("abab", "ab") // [0, 1, 2]
findAnagrams("a", "ab") // []
Как подойти
Пересечение двух паттернов: фиксированное окно и частоты. Сравнение словарей каждый шаг даёт O(n·алфавит); версия со счётчиком совпадений даёт чистое O(n) - назови как улучшение.
Подсказки: 2
- Окно фиксированной длины плюс сравнение частотных словарей.
- Нулевые счётчики надо удалять, иначе сравнение размеров врёт.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.