Входные данные:
Вводится список чисел. Все числа списка находятся на одной строке.
Выходные данные:
Выведите ответ на задачу.
Мой код:
s = list(map(int,input().split())) for i in range(len(s)-1, -1, -1): if s[i] == 0: s.append(s.pop(i)) print(*s)
s = list(map(int,input().split())) for i in range(len(s)-1, -1, -1): if s[i] == 0: s.append(s.pop(i)) print(*s)
Fiares_CurieНе знаю.
Почему так?
Fiares_CurieВот это признак того, что список может быть бесконечным. На практике это значит, например, что данные списка приходят с какого-то датчика непрерывно и бесконечно и их надо обрабатывать на лету. Оттуда и один проход. Так что, я думаю, они сделали в тестах защиту от вычисления длины списка. Не можешь ты вычислить длину бесконечного списка, повиснет функция вычисления длины. Ну, как бы в теории так, в питоне-то длина списка постоянно перевычисляется при любом изменении списка и хранится в служебном поле (но это неточно). Но по теории, вычисление длины списка имеет временную сложность O(n). Так что надо от этого избавиться.
задачу нужно выполнить за один проход по списку