Код Middle Реализация с нуля обновлено

Сжатие диапазонов

Условие

Отсортированный массив чисел сверни в строку диапазонов: [2,3,4,8,11,12,13] → '2-3,4,8,11-13'. Диапазон из двух элементов записывается через дефис, одиночное число - как есть.

Примеры

compressRanges([2, 3, 4, 8, 11, 12, 13]) // "2-4,8,11-13"
compressRanges([1]) // "1"
compressRanges([]) // ""

Как подойти

Классическая ошибка - потерять последнюю серию: цикл заканчивается, а накопленный диапазон так и не попадает в результат. Вынесенная функция выгрузки решает это одной строкой после цикла. Обрати внимание: в формулировке с собеседования пример был записан как '2-3,4', что противоречит правилу - стоит уточнить у интервьюера, как записывать серию из трёх элементов.

Подсказки: 2
  1. Веди начало текущей серии и предыдущее число.
  2. Не забудь выгрузить последнюю серию после цикла.

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

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