表达式计算4

表达式计算4

https://ac.nowcoder.com/acm/problem/50999

eval

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

给出一个表达式,其中运算符仅包含+,-,*,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值

数据可能会出现括号情况,还有可能出现多余括号情况

数据可能会出现负数情况

输入描述:

仅一行,即为表达式

输出描述:

仅一行,既为表达式算出的结果
示例1

输入

复制
(2+2)^(1+1)

输出

复制
16

备注:


赛高!我的最爱!直接把出题人卡你的地方手动改掉即可。

def deal(a):
    a = a.replace('^','**')
    a = a.replace(' ','')
    a = a.replace('()','')
    a = a.replace('/','//') #注意整除
    cnt = 0
    r = []
    for i in range(len(a)):
        if a[i] == '(':   cnt+=1
        elif a[i] == ')':
            if cnt == 0:    r.append(i)
            else:   cnt-=1
    la = list(a)
    for i in r: la.pop(i)
    n = len(la)
    cnt = 0
    l = []
    for i in range(n):
        if la[n - 1 - i] == ')':  cnt+=1
        elif la[n - 1 - i] == '(':
            if cnt == 0:  l.append(n - 1 - i)
            else:   cnt-=1
    for i in l: la.pop(i)
    a = ''.join(la)
    return a

s = input()
s = deal(s)
print(eval(s))
牛客算法竞赛入门课 文章被收录于专栏

给雨巨打call

全部评论

相关推荐

头像
02-15 16:23
中南大学 Java
野猪不是猪🐗:签了美团真是不一样! 亲戚们都知道我签了美团,过年都围着我问送一单多少钱,还让弟弟妹妹们引以为戒,笑我爸我妈养了个🐢孩子,说从小就知道我这个人以后肯定没出息,我被骂的都快上天了
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务