Реализация макс-кучи в Python
В цикле обрабатывается команда из промта: если в команде нет 'insert'
или 'pop'
или 'end'
, то значит идёт ряд чисел в формате str
. При этом условии я добавляю в кучу отрицательные значения из промта, чтобы реализовать макс-кучу.
from heapq import heappop, heappush, heapify
heap = []
heapify(heap)
while (promt:= input()) != 'end':
if 'insert' or 'pop' not in promt:
for p in promt.split():
heappush(heap, -1 * int(p))
elif 'insert' in promt:
heappush(heap, -1 * int(promt.split()[1]))
elif 'pop' in promt:
print(-1 * (heappop(heap)))
при этом вылетает ошибка:
ValueError: invalid literal for int() with base 10: 'insert'
получается 'insert'
игнорирует условие или как? Подскажите, где я мог допустить ошибку
На вход подаётся следующие значения:
1 5 2 6 3 7 4 8
insert 20
pop
insert 0
pop
insert 4
pop
end