题解 | #四则运算#

四则运算

http://www.nowcoder.com/practice/9999764a61484d819056f807d2a91f1e

# 我的解法不能满足特殊情况,比如题目中的-4/(8-6)
# 针对表达式3+2*{1+2*[-4/(8-6)+7]},我的代码输出是3 2 1 2 4 8 6 - / - 7 + * + * +,这个情况就是错误的,多了一个操作符,对这个-4没法处理,有没有大神指点下啊
'''class Stack():
    def __init__(self):
        self.items = []
        
    def isEmpty(self):
        return self.items == []
    
    def push(self, item):
        self.items.append(item)
    
    def pop(self):
        return self.items.pop()
    
    def peak(self):
        return self.items[len(self.items) -1]
    
    def size(self):
        return len(self.items)
    
inflix = []
tokenList = list(input())
postfixList = []
opStack = Stack()

prec = {}
prec['*'] = 3
prec['/'] = 3
prec['+'] = 2
prec['-'] = 2
prec['('] = 1
prec['{'] = 1  #记录操作符的优先级

for token in tokenList:
    if token in "01234567889":
        postfixList.append(token)
    elif token == '{':
        opStack.push(token)
    elif token == '}':
        topToken = opStack.pop()
        while topToken != '{':
            postfixList.append(topToken)
            topToken = opStack.pop()
    elif token == '(':
        opStack.push(token)
    elif token == ')':
        topToken = opStack.pop()
        while topToken != ')':
            postfixList.append(topToken)
            topToken = opStack.pop()
    else:
        while (not opStack.isEmpty()) and (prec[opStack.peak()] >= prec[token]):
            postfixList.append(opStack.pop())
            opStack.push(token)
            
    while not opStack.isEmpth():
        postfixList.append(opStack.pop())
        
postfixList = ' '.join(postfixList)'''

# 大神的解法,直接用python内置的eval函数
s = input() 
s = s.replace("{", "(") 
s = s.replace("}", ")") 
s = s.replace("[", "(") 
s = s.replace("]", ")") 
print(int(eval(s)))

全部评论
先判断-是减号还是负号,如果是负号,就和数字一起
点赞 回复 分享
发布于 2023-02-15 16:58 广东

相关推荐

这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
你找工作的时候用AI吗?
点赞 评论 收藏
分享
06-07 12:20
新余学院 Java
点赞 评论 收藏
分享
炫哥_:哥们项目描述里面vector和mysql之类的都要写吗,直接开头技术栈巴拉巴拉就行了,完全不是技术点啊
点赞 评论 收藏
分享
就前几天旅游的时候,打开抖音就经常刷到这类视频:以前是高学历学生、老师、主持人,现在做着团播、擦边主播的工作,以及那些经过精心包装的“职业转型”故事——从铺天盖地的VLOG到所谓的“04年夜场工作日记”,这些内容在初中升学、高考放榜等关键时间节点持续发酵。可以说非常直接且精准地在潜移默化地影响着心智尚未成熟的青少年,使其对特殊行业逐渐脱敏。那我就想问了:某些传播公司、平台运营者甚至某些夜场的老板,你们究竟在传递怎样的价值观?点开那些视频,评论区里也是呈现明显的两极分化:一种是​​经济下行论​​:“现在就业市场已经艰难到这种程度了吗?”​​一种是事实反驳派​​:这些创作者往往拥有名校背景,从事着...
牛客刘北:被环境教育的,为了能拿到足够的钱养活自己,不甘心也得甘心,现在的短视频传播的思想的确很扭曲,但是很明显,互联网玩上一年你就能全款提A6,但你全心全意不吃不喝工作一年未必能提A6,但是在高考中考出现这个的确很扭曲,在向大家传播“不上学,玩互联网也可以轻松年入百万”,不是人变了,是社会在变
预测一下26届秋招形势
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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