Middle — Senior
Napravite funkciju koja prihvata niz brojeva i vraća niz sa opsezima uzastopnih brojeva?
sobes.tech АИ
Одговор од АИ
Ниже е пример на функция на 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