Sobes.tech
Middle — Senior

Maak een functie die een array van getallen accepteert en een string retourneert met de bereiken van opeenvolgende getallen?

sobes.tech AI

Antwoord van AI

Hieronder staat een voorbeeld van een Python-functie die een gesorteerde lijst met nummers accepteert en een tekenreeks retourneert met reeksen van opeenvolgende nummers. Opeenvolgende nummers worden samengevoegd in reeksen van het type "start-eind", en enkele nummers worden gewoon weergegeven.

def ranges_to_string(nums):
    if not nums:
        return ""

    bereiken = []
    start = vorige = nums[0]

    for num in nums[1:]:
        if num == vorige + 1:
            vorige = num
        else:
            if start == vorige:
                bereiken.append(str(start))
            else:
                bereiken.append(f"{start}-{vorige}")
            start = vorige = num

    # Voeg de laatste reeks toe
    if start == vorige:
        bereiken.append(str(start))
    else:
        bereiken.append(f"{start}-{vorige}")

    return ",".join(reiken)

# Voorbeeld van gebruik
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr))  # Uitvoer: 1-3,5-6,8-10