本文共 1044 字,大约阅读时间需要 3 分钟。
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 Subscribe to see which companies asked this questionpython
class Solution(object): def isOp(self,s): return s=="+" or s=="-" or s=="*" or s=="/" def add(self,op1,op2): return op1+op2 def sub(self,op1,op2): return op1-op2 def mul(self,op1,op2): return op1 * op2 def div(self,op1,op2): if op1*op2<0: return -((-op1)/op2) return op1/op2 operator = { "+":add,"-":sub,"*":mul,"/":div} def evalRPN(self,tokens): nums=[] for s in tokens: if self.isOp(s): op2 = nums.pop() op1 = nums.pop() re = self.operator.get(s)(self,op1,op2) nums.append(re) else: nums.append(int(s)) return nums[0]
转载地址:http://uwqmi.baihongyu.com/