Sobes.tech
Middle — Senior

Créer une fonction qui prend un tableau de nombres et retourne une chaîne avec les plages de nombres consécutifs?

sobes.tech IA

Réponse de l'IA

Voici un exemple de fonction en Python qui prend un tableau trié de nombres et renvoie une chaîne avec des plages de nombres consécutifs. Les nombres consécutifs sont regroupés en plages du type "début-fin", et les nombres individuels sont affichés tels quels.

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

    plages = []
    debut = precedent = nums[0]

    for num in nums[1:]:
        if num == precedent + 1:
            precedent = num
        else:
            if debut == precedent:
                plages.append(str(debut))
            else:
                plages.append(f"{debut}-{precedent}")
            debut = precedent = num

    # Ajouter la dernière plage
    if debut == precedent:
        plages.append(str(debut))
    else:
        plages.append(f"{debut}-{precedent}")

    return ",".join(plages)

# Exemple d'utilisation
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr))  # Affichera : 1-3,5-6,8-10