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