Sobes.tech
Middle — Senior

Crear una función que acepte un array de números y devuelva una cadena con los rangos de números consecutivos?

sobes.tech AI

Respuesta de la IA

A continuación, un ejemplo de función en Python que toma una matriz ordenada de números y devuelve una cadena con rangos de números consecutivos. Los números consecutivos se combinan en rangos del tipo "inicio-fin", y los números individuales se muestran tal cual.

def ranges_to_string(nums):
    if not nums:
        return ""

    rangos = []
    inicio = anterior = nums[0]

    for num in nums[1:]:
        if num == anterior + 1:
            anterior = num
        else:
            if inicio == anterior:
                rangos.append(str(inicio))
            else:
                rangos.append(f"{inicio}-{anterior}")
            inicio = anterior = num

    # Añadir el último rango
    if inicio == anterior:
        rangos.append(str(inicio))
    else:
        rangos.append(f"{inicio}-{anterior}")

    return ",".join(rangos)

# Ejemplo de uso
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr))  # Salida: 1-3,5-6,8-10