Solución

@overnuke·3/6/2026TypeScript
solution.tsTypeScript
import re

def compress_to_ranges(numbers: list[int]) -> str:
    if not numbers:
        return ""

    str_range = f"{numbers[0]}"
    begin_range = numbers[0]
    i,n = 1, len(numbers)

    while i < n:
        end_range = numbers[i]
        difference = end_range - begin_range
        if difference == 1 or difference == -1:
            temp_str = f"-{end_range} "
            while i < n:
                i += 1
                begin_range = end_range
                end_range = numbers[i] if i < n else end_range
                difference = end_range - begin_range
                if difference > 1 or difference < -1:
                    break
                temp_str = f"-{end_range} "
            str_range += temp_str
        else:
            i += 1
            str_range += f" {end_range}"

        begin_range = end_range

    numbers_list = re.findall(r"-?\d+--?\d+|-?\d+",str_range)
    return ",".join(numbers_list)
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.