Нужно реализовать класс StackMax, который поддерживает операцию определения максимума среди всех элементов в стеке. Класс должен поддерживать операции push(x), где x – целое число, pop() и get_max().
Формат ввода
В первой строке записано одно число n — количество команд, которое не превосходит 10000. В следующих n строках идут команды. Команды могут быть следующих видов:
push(x) — добавить число x в стек;
pop() — удалить число с вершины стека;
get_max() — напечатать максимальное число в стеке;
Если стек пуст, при вызове команды get_max() нужно напечатать «None», для команды pop() — «error».
Формат вывода
Для каждой команды get_max() напечатайте результат её выполнения. Если стек пустой, для команды get_max() напечатайте «None». Если происходит удаление из пустого стека — напечатайте «error».
class StackMax: def __init__(self): self.items = [] self.max = [] def isEmpty(self): return self.items == [] def push(self, item): if len(self.items) == 0: self.max.append(int(item)) elif int(item) > self.max[len(self.items)-1]: self.max.append(int(item)) else: self.max.append(self.max[len(self.items)-1]) self.items.append(item) def pop(self): if self.isEmpty(): return 'error' self.max.pop() return self.items.pop() def get_max(self): if self.isEmpty(): return 'None' return self.max[len(self.items) - 1] s = StackMax() n = int(input()) result = [] for i in range(n): command = input().split() if command[0] == 'push': s.push(command[1]) if command[0] == 'pop': if pop(s) == 'error': result.append('error') if command[0] == 'get_max': result.append(get_max(s)) for i in result: print(i)