题解 | 牛牛与后缀表达式

牛牛与后缀表达式

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))
            

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-05 04:14
已编辑
真烦好烦真烦:看着感觉好强啊,这都过不了吗
投递字节跳动等公司7个岗位 面试中的破防瞬间
点赞 评论 收藏
分享
04-15 23:42
中山大学 Java
ResourceUtilization:过几天楼主就会捧着一堆offer来问牛友们该怎么选辣
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务