Middle — Senior
Функсияи эҷод кунед, ки массиви рақамҳоро қабул мекунад ва сатр бо доираҳои рақамҳои пайдарпайро бармегардонад?
sobes.tech AI
Ҷавоб аз AI
Таълимоти Python-да, ки мисолан, тартибланган рақамлар массиви қабул мекунад ва рақамларининг давомий диапазонларини ўзида сақлайдиган сатрни қайтарган функцияни кўрсатади. Давомий рақамлар "бошланғич-охир" шаклида бирлаштирилади, ва ягона рақамлар улар каби кўрсатилади.
def ranges_to_string(nums):
if not nums:
return ""
диапазонлар = []
бошланғич = аввалги = nums[0]
for num in nums[1:]:
if num == аввалги + 1:
аввалги = num
else:
if бошланғич == аввалги:
диапазонлар.append(str(бошланғич))
else:
диапазонлар.append(f"{бошланғич}-{авалги}")
бошланғич = аввалги = num
# Охирги диапазонни қўшиш
if бошланғич == аввалги:
диапазонлар.append(str(бошланғич))
else:
диапазонлар.append(f"{бошланғич}-{авалги}")
return ",".join(диапазонлар)
# Ишлатиш мисоли
arr = [1, 2, 3, 5, 6, 8, 9, 10]
print(ranges_to_string(arr)) # Чиқиш: 1-3,5-6,8-10