Evaluate Reverse Polish Notation (Leetcode 150)
Problem Link: https://leetcode.com/problems/evaluate-reverse-polish-notation/
class Solution:
def evalRPN(self, tokens: List[str]) -> int:
nums={"1","2","3","4","5","6","7","8","9","0"}
s=[]
for i in tokens:
if(len(i)>1 and i[0]=='-'):
s.append(-1*int(i[1:]))
elif(i.isnumeric()):
s.append(int(i))
else:
b=s.pop()
a=s.pop()
if(i=="*"):
s.append(a*b)
elif(i=="/"):
# Cannot use // because, //
# floors the result in case of -ves
# 6//4 -> 1 while -6//4 -> -2
s.append(int(float(a)/float(b)))
elif(i=="-"):
s.append(a-b)
elif(i=="+"):
s.append(a+b)
# print(s)
return s[0]
Last updated