列表

详情


NC212914. 牛牛与后缀表达式

描述

给定牛牛一个后缀表达式s,计算它的结果,例如,1+1对应的后缀表达式为1#1#+,‘#’作为操作数的结束符号。
其中,表达式中只含有‘+’、’-‘、’*‘三种运算,不包含除法。
本题保证表达式一定合法,且计算过程和计算结果的绝对值一定不会超过

输入描述



示例1

输入:

"1#1#+"

输出:

2

说明:

1#1#+这个后缀表达式表示的式子是1+1,结果为2

示例2

输入:

"12#3#+15#*"

输出:

225

说明:

12#3#+15#*这个后缀表达式表示的式子是(12+3)*15,结果为225

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3 解法, 执行用时: 75ms, 内存消耗: 5480K, 提交时间: 2023-08-11 17:00:25

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 给定一个后缀表达式,返回它的结果
# @param str string字符串 
# @return long长整型
#
class Solution:
    def legalExp(self , s):
        # write code here
        num = 0
        nums = []
        for c in s:
            if c.isdigit():
                num = 10*num+int(c)
            elif c=='#':
                nums.append(num)
                num = 0
            elif c=='+':
                b = nums.pop()
                a = nums.pop()
                nums.append(a+b)
            elif c=='-':
                b = nums.pop()
                a = nums.pop()
                nums.append(a-b)
            elif c=='*':
                b = nums.pop()
                a = nums.pop()
                nums.append(a*b)
        return nums[0]

上一题