Middle — Senior
Bir sayı dizisi alan ve ardışık sayı aralıkları içeren bir dize döndüren fonksiyon oluşturun?
sobes.tech yapay zeka
AI'dan gelen yanıt
Aşağıda, sıralanmış bir sayı dizisini alan ve ardışık sayı aralıklarını içeren bir dize döndüren Python fonksiyonunun bir örneği bulunmaktadır. Ardışık sayılar "başlangıç-bitiş" biçiminde aralıklar halinde birleştirilir ve tek sayılar olduğu gibi gösterilir.
def ranges_to_string(nums):
if not nums:
return ""
araliklar = []
baslangic = onceki = nums[0]
for num in nums[1:]:
if num == onceki + 1:
onceki = num
else:
if baslangic == onceki:
araliklar.append(str(baslangic))
else:
araliklar.append(f"{baslangic}-{onceki}")
baslangic = onceki = num
# Son aralığı ekle
if baslangic == onceki:
araliklar.append(str(baslangic))
else:
araliklar.append(f"{baslangic}-{onceki}")
return ",".join(araliklar)
# Kullanım örneği
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Çıktı: 1-3,5-6,8-10