Группировка и упорядочивание анаграмм

Ключ группы — символы слова, отсортированные в одинаковом порядке. Соберите группы в Map и отсортируйте их по числу элементов.

Короткий ответ

Что ответить на собеседовании

Ключ группы — символы слова, отсортированные в одинаковом порядке. Соберите группы в Map и отсортируйте их по числу элементов.

Подробный разбор

Ответ с пояснениями

Условие

Реализовать функцию, получающую массив строк. Необходимо определить все группы анаграмм и вернуть их в виде отсортированного списка, упорядоченного по количеству вхождений каждой группы.

Ответ

Ключ группы — символы слова, отсортированные в одинаковом порядке. Соберите группы в Map и отсортируйте их по числу элементов.

function groupAnagrams(words) {
  const groups = new Map();
  for (const word of words) {
    const key = JSON.stringify(Array.from(word).sort());
    if (!groups.has(key)) groups.set(key, []);
    groups.get(key).push(word);
  }
  return [...groups.values()].sort((a, b) => b.length - a.length);
}

Здесь группы идут по убыванию размера; при равенстве сохраняется порядок первого появления. Регистр и пробелы значимы, повторения слов учитываются. Для иных правил нормализации или сортировки нужен дополнительный контракт.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее