-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathleetcode_0150.py
27 lines (22 loc) · 1.23 KB
/
leetcode_0150.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution:
def evalRPN(self, tokens: list[str]) -> int:
stack: list = []
for char in tokens:
if char in "+-*/":
val2, val1 = stack.pop(), stack.pop()
if char == "+":
val1 += val2
elif char == "-":
val1 -= val2
elif char == "*":
val1 *= val2
else:
val1 /= val2
stack.append(int(val1))
else:
stack.append(int(char))
return int(stack[-1])
s = Solution()
print(s.evalRPN(["4","13","5","/","+"]))
print(s.evalRPN(["10", "6", "9", "3", "+", "-11", "*", "/", "*", "17", "+", "5", "+"]))
print(s.evalRPN(["-78","-33","196","+","-19","-","115","+","-","-99","/","-18","8","*","-86","-","-","16","/","26","-14","-","-","47","-","101","-","163","*","143","-","0","-","171","+","120","*","-60","+","156","/","173","/","-24","11","+","21","/","*","44","*","180","70","-40","-","*","86","132","-84","+","*","-","38","/","/","21","28","/","+","83","/","-31","156","-","+","28","/","95","-","120","+","8","*","90","-","-94","*","-73","/","-62","/","93","*","196","-","-59","+","187","-","143","/","-79","-89","+","-"]))