Я сейчас прохожу задания на stepik. Вот ссылка на конкретное задание https://stepik.org/lesson/24461/step/9?discussion=611901&unit=6767
Реализуйте класс Buffer, который будет накапливать в себе элементы последовательности и выводить сумму пятерок последовательных элементов по мере их накопления.
Программу пишу, все работает на разных тестах... Сайт не принимает задание, пишет Time Error..Работает она вроде быстро, подскажите как что исправить?
class Buffer:
def __init__(self):
self.buff =[]
def add(self, *a):
for i in a:
self.buff.append(i)
while len(self.buff) >= 5:
i = 0
sum = 0
while i != 5:
sum += self.buff[0]
self.buff.remove(self.buff[0])
i += 1
print(sum)
# print(self.buff)
def get_current_part(self):
return self.buff
buf = Buffer()
buf.add(1, 2, 3,3,3,3,3,3,3,3,3,3,3,3)
print(buf.get_current_part()) # вернуть [1, 2, 3]
buf.add(4, 5, 6) # print(15) – вывод суммы первой пятерки элементов
print(buf.get_current_part())
buf.add(7, 8, 9, 10) # print(40) – вывод суммы второй пятерки элементов
print(buf.get_current_part())
buf.add(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) # print(5), print(5) – вывод сумм третьей и четвертой пятерки
print(buf.get_current_part()) # вернуть [1]
self._nums[part_size:]этоO(n)операция и повторяете вы еёO(n//part_size) = O(n)раз итого:O(n*n). – jfs Jun 05 '18 at 13:07buf.add(*(1,) * 10**6)(перенаправив stdout предварительно) – jfs Jun 05 '18 at 13:30