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