Middle — Senior
Ketma-ket raqamlar diapazonlari bilan satrni qaytaradigan massiv raqamlarni qabul qiladigan funktsiya yaratish?
sobes.tech AI
AIdan javob
Quyidagi Python funksiyasi, tartiblangan raqamlar massivini qabul qiladigan va ketma-ket raqamlar diapazonlarini o'z ichiga olgan satrni qaytaradigan misol. Ketma-ket raqamlar "start-end" shaklida diapazonlarga birlashtiriladi, va yagona raqamlar o'z holicha chiqariladi.
def ranges_to_string(nums):
if not nums:
return ""
diapazonlar = []
boshlanish = oldingi = nums[0]
for num in nums[1:]:
if num == oldingi + 1:
oldingi = num
else:
if boshlanish == oldingi:
diapazonlar.append(str(boshlanish))
else:
diapazonlar.append(f"{boshlanish}-{oldingi}")
boshlanish = oldingi = num
# Oxirgi diapazonni qo'shish
if boshlanish == oldingi:
diapazonlar.append(str(boshlanish))
else:
diapazonlar.append(f"{boshlanish}-{oldingi}")
return ",".join(diapazonlar)
# Foydalanish misoli
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Chiqish: 1-3,5-6,8-10