Sobes.tech
Middle — Senior

Creare una funzione che accetti un array di numeri e restituisca una stringa con gli intervalli di numeri consecutivi?

sobes.tech AI

Risposta dell'AI

Ecco un esempio di funzione in Python che prende un array ordinato di numeri e restituisce una stringa con intervalli di numeri consecutivi. I numeri consecutivi vengono uniti in intervalli del tipo "start-end", e i numeri singoli vengono mostrati così come sono.

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

    intervalli = []
    inizio = precedente = nums[0]

    for num in nums[1:]:
        if num == precedente + 1:
            precedente = num
        else:
            if inizio == precedente:
                intervalli.append(str(inizio))
            else:
                intervalli.append(f"{inizio}-{precedente}")
            inizio = precedente = num

    # Aggiungi l'ultimo intervallo
    if inizio == precedente:
        intervalli.append(str(inizio))
    else:
        intervalli.append(f"{inizio}-{precedente}")

    return ",".join(intervalli)

# Esempio di utilizzo
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr))  # Output: 1-3,5-6,8-10