题解 | #四则运算#

四则运算

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

import math
def jjcc(s):
    while '*' in s or '/' in s:
        for i in s:
            if i=='*':
                tmp=float(s[s.index(i)-1])*float(s[s.index(i)+1])
                s=s[:s.index(i)-1]+[tmp]+s[s.index(i)+2:]
                break
            elif i=='/':
                tmp=float(s[s.index(i)-1])/float(s[s.index(i)+1])
                s=s[:s.index(i)-1]+[tmp]+s[s.index(i)+2:]
                break
    while '+' in s or '-' in s:
        for i in s:
            if i=='+':
                tmp=float(s[s.index(i)-1])+float(s[s.index(i)+1])
                s=s[:s.index(i)-1]+[tmp]+s[s.index(i)+2:]
                break
            elif i=='-':
                if s.index('-') !=0:
                    tmp=float(s[s.index(i)-1])-float(s[s.index(i)+1])
                    s=s[:s.index(i)-1]+[tmp]+s[s.index(i)+2:]
                else:
                    s=[-1*s[1]]+s[2:]
                break
    return s 
t=''.join([' '+i+' ' if not i.isnumeric() else i for i in input()])
t=t.split()

while '(' in t or '[' in t or '{' in t:
    for i in t[::-1]:
        if i=='(':
            idx1=len(t)-1-t[::-1].index('(')
            idx2 =idx1+1+t[idx1+1:].index(')')
            tmp=jjcc(t[idx1+1:idx2])
            t=t[:idx1]+tmp+t[idx2+1:]
        elif i =='{':
            idx1 = len(t) - 1 - t[::-1].index('{')
            idx2 =idx1+1+t[idx1+1:].index('}')
            tmp=jjcc(t[idx1+1:idx2])
            t = t[:idx1] + tmp + t[idx2 + 1:]
        elif i =='[':
            idx1 = len(t) - 1 - t[::-1].index('[')
            idx2 =idx1+1+t[idx1+1:].index(']')
            tmp=jjcc(t[idx1+1:idx2])
            t = t[:idx1] + tmp + t[idx2 + 1:]
print(round(jjcc(t)[0]))

全部评论

相关推荐

用微笑面对困难:除了美国之外,剩下两个地方是不是买单程票就行了
点赞 评论 收藏
分享
星期一的大老师:项目描述 和 技术栈单开一栏;八股文:算法与数据结构,计算机网络一定要写,操作系统不了解可以不写;Linux命令,Git,Docker基础命令和基本使用一定要写,要有实际使用场景的解决经验;项目的八股文上:redis 解决 缓存雪崩,缓存击穿,缓存穿透的解决方案,一个问题的不同方案可以一起用,不需要重复在两个项目写。第二个项目换一个。小厂可以投一投
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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