这道题属于高难度的多项式计算问题。我们需要解析表达式,执行加减乘运算,并处理包含变量的多项式。
题目描述
给定一个字符串 expression
作为计算表达式,其中包含整数、变量(仅小写字母)、加法 +
、减法 -
、乘法 *
、以及括号 ()
。
还提供了两个列表:
evalvars
:存储需要替换的变量名evalints
:存储变量对应的数值
我们需要计算表达式的值,并按降幂排序返回结果(若幂次相同,则按字典序排序变量)。
解题思路
-
数据结构选择
- 用
Counter
(Python字典) 记录多项式项,例如:{"x": 2, "y": 1}
表示x^2 * y
。 - 这样可以高效处理多项式相加、相乘等运算。
- 用
-
解析表达式
- 递归解析表达式
expression
,遵循 加法、减法、乘法、括号优先级。 - 使用 栈
- 递归解析表达式