Sobes.tech
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