Sobes.tech
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