Sobes.tech
Middle — Senior
26

Создать функцию, которая принимает массив чисел и возвращает строку с диапазонами последовательных чисел?

Компании, где спрашивали
VKVK

Ответ от нейросети

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