Ring doorbell firmware may need to track the largest pending priority while processing events. Design a stack that supports push, pop, and get_max in O(1) worst-case time per operation.
Implement max_stack_operations(operations). Each operation is represented as a list:
["push", value] adds an integer to the top of the stack and produces no output.["pop"] removes and returns the top value.["get_max"] returns the largest value currently in the stack without removing it.Return a list containing the results of every pop and get_max, in operation order. Inputs will never pop from an empty stack or call get_max on an empty stack. Duplicate values must be handled correctly. Do not use Python's max() during an operation, and do not scan the stack to answer get_max.
Input: operations, a list of valid operation lists, where values are integers.
Output: A list of integers containing results from pop and get_max operations only.
def max_stack_operations(operations):