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