Solución
solution.tsTypeScript
export function compressToRanges(numbers: number[]): string {
if (numbers.length === 0) return "";
if (numbers.length === 1) return numbers[0]!.toString();
let accToRanges: Array<string> = [];
let prev: number = numbers[0]!;
let start = prev;
for (let i = 1; i < numbers.length; i++) {
const current = numbers[i];
if (current != prev + 1) {
accToRanges.push(formatRange(start, prev));
start = current!;
}
prev = current!;
}
accToRanges.push(formatRange(start, prev));
return accToRanges.join(",");
}
function formatRange(start: number, end: number): string {
return start === end ? `${start}` : `${start}-${end}`;
}0respuestas