Word Machine
You are given a list of strings ops
where each element is either:
- A non-negative integer that should be pushed into a stack
"POP"
meaning pop the top element in the stack"DUP"
meaning duplicate the top element in the stack"+"
meaning pop the top two and push the sum"-"
meaning pop the top two and pushtop - second
Return the top element in the stack after applying all operations. If there are any invalid operations, return -1
.
Constraints
1 ≤ n ≤ 100,000
wheren
is the length ofops
https://binarysearch.com/problems/Word-Machine
Examples
Example 1
Input
- ops =
['1', '5', 'DUP', '3', '-']
Output
- answer =
-2
Explanation
Following the operations:
- We push
1
into the stack:[1]
- We push
5
into the stack:[1, 5]
- We duplicate the top element:
[1, 5, 5]
- We push
3
into the stack:[1, 5, 5, 3]
- We pop
3
and5
and push their difference3 - 5
:[1, 5, -2]
We return the top element which is -2
Example 2
Input
- ops =
['+']
Output
- answer =
-1
Explanation
There’s no elements in the stack so this is invalid.
Leave a comment