Код 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
- Веди начало текущей серии и предыдущее число.
- Не забудь выгрузить последнюю серию после цикла.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.