给定一个算术表达式,可以包括括号(()
),指数(^
),除法(/
)和乘法(*
),加法(+
)和减法(-
)(按该操作顺序),例如
a ^ (2 / 3) * 9 * 3 - 4 * 6
以前缀表示法输出相同的表达式。
(- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6))
输入和输出中的空格都是可选的。您可以假定所有运算符都是左关联的,并且表达式中的所有数字都是一位整数(即[0-9]
)。
这是一场代码挑战赛,因此最短的解决方案将获胜。
另外,您在操作列表中省略了除法。
—
PhiNotPi 2012年
括号在输出中是可选的吗?
—
Ali1S232
@KeithRandall
—
彼得·奥尔森
*
和amd /
具有相同的优先级。+
-
@Gajet不,不是。
—
彼得·奥尔森
3+4-5+6 = (((3+4)-5)+6)
还是((3+4)-(5+6))
?