Sobes.tech
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