Middle — Senior
Vytvořte funkci, která přijímá pole čísel a vrací řetězec s rozsahy po sobě jdoucích čísel?
sobes.tech AI
Odpověď od AI
Níže je příklad funkce v Pythonu, která přijímá seřazený seznam čísel a vrací řetězec s rozsahy po sobě jdoucích čísel. Po sobě jdoucí čísla jsou spojena do rozsahů ve tvaru "start-end" a jednotlivá čísla jsou zobrazena tak, jak jsou.
def ranges_to_string(nums):
if not nums:
return ""
rozsahy = []
zacatek = predchozi = nums[0]
for num in nums[1:]:
if num == predchozi + 1:
predchozi = num
else:
if zacatek == predchozi:
rozsahy.append(str(zacatek))
else:
rozsahy.append(f"{zacatek}-{predchozi}")
zacatek = predchozi = num
# Přidat poslední rozsah
if zacatek == predchozi:
rozsahy.append(str(zacatek))
else:
rozsahy.append(f"{zacatek}-{predchozi}")
return ",".join(rozsahy)
# Příklad použití
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Výstup: 1-3,5-6,8-10