题解 | 牛牛与后缀表达式
牛牛与后缀表达式
https://www.nowcoder.com/practice/a1a4f178f6ff4188890e51da1cc8ce10
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 给定一个后缀表达式,返回它的结果 # @param str string字符串 # @return long长整型 # class Solution: def legalExp(self , str ): # write code here def apply_op(a,b,op): if op == "+":return a+b if op == "-":return a-b if op == "*":return a*b stack = [] i = 0 while i < len(str): if str[i].isdigit(): num = 0 while i < len(str) and str[i].isdigit(): num = num *10 + int(str[i]) i += 1 stack.append(num) elif str[i] == "#": i += 1 elif str[i] in ("+","-","*"): num1 = stack.pop() num2 = stack.pop() op = str[i] stack.append(apply_op(num2,num1,op)) i += 1 return int(stack[0]) if __name__ == "__main__": s = str(input().strip().replace('"','')) print(Solution().legalExp(s))