Middle — Senior
Izveidojiet funkciju, kas pieņem skaitļu masīvu un atgriež virkni ar secīgu skaitļu diapazoniem?
sobes.tech AI
Atbilde no AI
Zemāk ir piemērs Python funkcijai, kas pieņem sakārtotu skaitļu masīvu un atgriež virkni ar secīgiem skaitļu diapazoniem. Secīgi skaitļi tiek apvienoti diapazonos formātā "sākums-beigas", un atsevišķi skaitļi tiek rādīti tādi, kādi tie ir.
def ranges_to_string(nums):
if not nums:
return ""
diapazoni = []
pradzia = praeitis = nums[0]
for num in nums[1:]:
if num == praeitis + 1:
praeitis = num
else:
if pradzia == praeitis:
diapazoni.append(str(pradzia))
else:
diapazoni.append(f"{pradzia}-{praeitis}")
pradzia = praeitis = num
# Pievienot pēdējo diapazonu
if pradzia == praeitis:
diapazoni.append(str(pradzia))
else:
diapazoni.append(f"{pradzia}-{praeitis}")
return ",".join(diapazoni)
# Piemērs lietošanai
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Izvade: 1-3,5-6,8-10