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