一、题目
输入一个表达式(用字符串表示),求这个表达式的值。
保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。
数据范围:表达式计算结果和过程中满足
∣
v
a
l
∣
≤
1000
|val|\le 1000
∣val∣≤1000,字符串长度满足
1
≤
n
≤
1000
1\le n \le 1000
1≤n≤1000
输入描述:
输入一个算术表达式
输出描述:
得到计算结果
二、示例
输入:3+2*{1+2*[-4/(8-6)+7]}
输出:25
三、代码
s=input()
s=s.replace('{', '(')
s=s.replace("}",")")
s=s.replace("[","(")
s=s.replace("]",")")
print(int(eval(s)))
四、算法说明
三种括号在数学中的计算顺序,转化为程序之后,和全是小括号“()”的结果相同,因此用“()”替换其他括号,然后用eval()
函数计算结果。
函数解释1: str.replace(old, new, max)
,replace()
方法把字符串中的old
(旧字符串) 替换成new
(新字符串),如果指定第三个参数max
,则替换不超过max
次。
函数解释2: eval()
函数用来执行一个字符串表达式,并返回表达式的值。
胡萝卜
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |