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