题解 | #四则运算#

四则运算

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


def helper(s):
    pre_sign = '+'
    num = 0
    stack = []
	
    while s:
        v = s[0]
        s.pop(0)

        if v.isdigit():
            num = num*10 + int(v)

        if v in ['(', '[', '{']:
            num = helper(s)

        if not v.isdigit() or len(s)==0:
            if pre_sign == '+':
                stack.append(num)
            if pre_sign == '-':
                stack.append(-num)
            if pre_sign == '*':
                tmp = stack.pop()
                stack.append(tmp*num)
            if pre_sign == '/':
                tmp = stack.pop()
                stack.append(tmp/num)
            num = 0
            pre_sign = v
            
        
        
        if v in [')', ']', '}']:
                break
            
    return sum(stack)


全部评论

相关推荐

06-03 15:32
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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