Yuzhen's Blog

Yuzhen Qin

题解:P10473 表达式计算4

10
2024-06-17

本题 Python 题解都太长了,这里提供一种 3 行的 Python 做法。

首先 Python 中的乘方是 **,对应 C++ 中的除法是 //,所以使用 str.replace() 函数替换对应符号。

由于数据可能出现多余括号情况,可以使用 str.count() 函数计算字符串中指定字符串的数量。然后计算出左括号和右括号的数量的差。如果多左括号,则在字符串最右边补右括号,反之亦然。

最后使用 eval() 函数对表达式求值即可。

a = input().replace('/', '//').replace('^', '**')
cnt = a.count('(') - a.count(')')
print(eval('(' * -cnt + a + ')' * cnt))