Sobes.tech
Middle — Senior

Stwórz funkcję, która przyjmuje tablicę liczb i zwraca ciąg znaków z zakresami kolejnych liczb?

sobes.tech AI

Odpowiedź od AI

Poniżej znajduje się przykład funkcji w Pythonie, która przyjmuje posortowaną tablicę liczb i zwraca ciąg znaków z zakresami kolejnych liczb. Kolejne liczby są łączone w zakresy typu "start-end", a pojedyncze liczby są wyświetlane tak, jak są.

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

    zakresy = []
    poczatek = poprzedni = nums[0]

    for num in nums[1:]:
        if num == poprzedni + 1:
            poprzedni = num
        else:
            if poczatek == poprzedni:
                zakresy.append(str(poczatek))
            else:
                zakresy.append(f"{poczatek}-{poprzedni}")
            poczatek = poprzedni = num

    # Dodaj ostatni zakres
    if poczatek == poprzedni:
        zakresy.append(str(poczatek))
    else:
        zakresy.append(f"{poczatek}-{poprzedni}")

    return ",".join(zakresy)

# Przykład użycia
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr))  # Wyjście: 1-3,5-6,8-10