Sobes.tech
Middle — Senior

Davamlı ədədlər diapazonları ilə sətir qaytaran ədədlər massivini qəbul edən funksiya yaradın?

sobes.tech Süni İntellekt

AI-dan cavab

Aşağıda, sıralanmış bir sayı massivini alan və ardıcıl sayların diapazonlarını ehtiva edən bir sətir qaytaran Python funksiyasının nümunəsi verilmişdir. Ardıcıl sayılar "başlanğıc-son" növündə diapazonlara birləşdirilir və tək sayılar olduğu kimi göstərilir.

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

    diapazonlar = []
    başlanğıc = əvvəlki = nums[0]

    for num in nums[1:]:
        if num == əvvəlki + 1:
            əvvəlki = num
        else:
            if başlanğıc == əvvəlki:
                diapazonlar.append(str(başlanğıc))
            else:
                diapazonlar.append(f"{başlanğıc}-{əvvəlki}")
            başlanğıc = əvvəlki = num

    # Son diapazonu əlavə et
    if başlanğıc == əvvəlki:
        diapazonlar.append(str(başlanğıc))
    else:
        diapazonlar.append(f"{başlanğıc}-{əvvəlki}")

    return ",".join(diapazonlar)

# İstifadə nümunəsi
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr))  # Nəticə: 1-3,5-6,8-10