Sobes.tech
Middle — Senior

Creați o funcție care acceptă un array de numere și returnează un șir cu intervalele numerelor consecutive?

sobes.tech AI

Răspuns de la AI

Mai jos este un exemplu de funcție în Python care acceptă un array sortat de numere și returnează un șir de caractere cu intervale de numere consecutive. Numerele consecutive sunt unite în intervale de tip "start-end", iar numerele individuale sunt afișate așa cum sunt.

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

    intervale = []
    start = anterior = nums[0]

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

    # Adaugă ultimul interval
    if start == anterior:
        intervale.append(str(start))
    else:
        intervale.append(f"{start}-{anterior}")

    return ",".join(intervale)

# Exemplu de utilizare
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr))  # Va afișa: 1-3,5-6,8-10