Middle — Senior
Vytvorte funkciu, ktorá prijíma pole čísel a vracia reťazec s rozsahmi po sebe nasledujúcich čísel?
sobes.tech AI
Odpoveď od AI
Nižšie je príklad funkcie v Pythone, ktorá prijíma zoradený zoznam čísel a vracia reťazec s rozsahmi po sebe idúcich čísel. Po sebe idúce čísla sa spájajú do rozsahov typu "začiatok-koniec" a jednotlivé čísla sa zobrazujú tak, ako sú.
def ranges_to_string(nums):
if not nums:
return ""
rozsahy = []
začiatok = predchádzajúci = nums[0]
for num in nums[1:]:
if num == predchádzajúci + 1:
predchádzajúci = num
else:
if začiatok == predchádzajúci:
rozsahy.append(str(začiatok))
else:
rozsahy.append(f"{začiatok}-{predchádzajúci}")
začiatok = predchádzajúci = num
# Pridať posledný rozsah
if začiatok == predchádzajúci:
rozsahy.append(str(začiatok))
else:
rozsahy.append(f"{začiatok}-{predchádzajúci}")
return ",".join(rozsahy)
# Príklad použitia
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Výstup: 1-3,5-6,8-10