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