Middle — Senior
Criar uma função que aceite um array de números e retorne uma string com os intervalos de números consecutivos?
sobes.tech IA
Resposta da IA
A seguir, um exemplo de função em Python que aceita uma matriz ordenada de números e retorna uma string com intervalos de números consecutivos. Números consecutivos são combinados em intervalos do tipo "início-fim", e números únicos são exibidos como estão.
def ranges_to_string(nums):
if not nums:
return ""
intervalos = []
inicio = anterior = nums[0]
for num in nums[1:]:
if num == anterior + 1:
anterior = num
else:
if inicio == anterior:
intervalos.append(str(inicio))
else:
intervalos.append(f"{inicio}-{anterior}")
inicio = anterior = num
# Adiciona o último intervalo
if inicio == anterior:
intervalos.append(str(inicio))
else:
intervalos.append(f"{inicio}-{anterior}")
return ",".join(intervalos)
# Exemplo de uso
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Saída: 1-3,5-6,8-10