Middle — Senior
Създайте функция, която приема масив от числа и връща низ с диапазоните на последователните числа?
sobes.tech AI
Отговор от AI
По-долу е даден пример за функция на Python, която приема сортиран масив от числа и връща низ с диапазони на последователни числа. Последователните числа се обединяват в диапазони от вида "начало-край", а единичните числа се показват както са.
def ranges_to_string(nums):
if not nums:
return ""
диапазони = []
начало = предишно = nums[0]
for num in nums[1:]:
if num == предишно + 1:
предишно = num
else:
if начало == предишно:
диапазони.append(str(начало))
else:
диапазони.append(f"{начало}-{предишно}")
начало = предишно = num
# Добавяне на последния диапазон
if начало == предишно:
диапазони.append(str(начало))
else:
диапазони.append(f"{начало}-{предишно}")
return ",".join(диапазони)
# Пример за използване
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Изход: 1-3,5-6,8-10