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