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