Middle — Senior
Loo funktsioon, mis võtab vastu arvude massiivi ja tagastab stringi järjestikuste arvude vahemikega?
sobes.tech AI
Vastus AI-lt
Allpool on näide Python-funktsioonist, mis võtab vastu sorteeritud arvude massiivi ja tagastab stringi järjestikuste arvude vahemikega. Järjepidevad arvud ühendatakse vahemikeks "start-lõpp" ning üksikud arvud kuvatakse sellistena, nagu nad on.
def ranges_to_string(nums):
if not nums:
return ""
vahemikud = []
algus = eelmine = nums[0]
for num in nums[1:]:
if num == eelmine + 1:
eelmine = num
else:
if algus == eelmine:
vahemikud.append(str(algus))
else:
vahemikud.append(f"{algus}-{eelmine}")
algus = eelmine = num
# Lisa viimane vahemik
if algus == eelmine:
vahemikud.append(str(algus))
else:
vahemikud.append(f"{algus}-{eelmine}")
return ",".join(vahemikud)
# Kasutamise näide
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Väljund: 1-3,5-6,8-10