Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are +-*/. Each operand may be an integer or another expression.

Some examples:

  ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
  ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

 1 class Solution:
 2     def evalRPN(self, tokens):
 3         """
 4         :type tokens: List[str]
 5         :rtype: int
 6         """
 7         stack = []
 8         for i in tokens:
 9             if i not in ['+','-','*','/']:
10                 stack.append(i)
11             else:
12                 v2 = int(stack.pop())
13                 v1 = int(stack.pop())
14                 if i=='+':
15                     stack.append(v1+v2)
16                 if i=='-':
17                     stack.append(v1-v2)
18                 if i=='*':
19                     stack.append(v1*v2)
20                 if i=='/':
21                     stack.append(v1/v2)
22         return int(stack[0])
23         

 

 

 

相关文章: