#C0008. 表达式转换
表达式转换
题目背景
出题团:Code.出题团
题目描述
现给予一个中缀表达式 ,请把它转换成后缀表达式。
注意
中可能含有 +
-
×
÷
^
(
)
[
]
{
}
中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。 中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易理解与分析中缀表达式,但对计算机来说中缀表达式却是很复杂的,因此计算表达式的值时,通常需要先将中缀表达式转换为前缀或后缀表达式,然后再进行求值。 对计算机来说,计算前缀或后缀表达式的值非常简单 。
后缀表达式(也称为 逆波兰表达式 )是一种将运算符放置在操作数后面的表达式,例如:3 4 2 * 1 5 - 2 ^ / +
。 在后缀表达式中, 所有操作符的优先级相同,而括号则不再需要。
输入格式
仅一行一个一个字符串 ,表示需要转换的中缀表达式。转换方法
输出格式
仅一行一个字符串,表示 转换后的后缀表达式,如有错误的中缀表达式(如样例#6#7#8#9#10),输出 Error
。
1+1
1 1 +
(5+3)×2
5 3 + 2 ×
2^3^4
2 3 4 ^ ^
3÷4+2×4
3 4 ÷ 2 4 × +
3+[(2+2)+2]
2 2 + 2 + 3 +
3×[(213+20])+20
Error
3××82
Error
×927+29×8
Error
[]39×(12+10)
Error
938×0×9÷0
Error
2^(0+1)
0 1 + 2 ^
780÷{[9+(39+12)]×2}
780 39 12 + 9 + 2 × ÷
提示
注意
^
运算符是从右向左结合的,即 2^3^4
结合为 2^(3^4)
,
+
-
×
÷
(
)
。
。
本题有多个评测子任务
-
Subtask #1 为测试数据,单个测试点通过得 分,未通过得 分。
-
Subtask #2 为样例,单个测试点通过得 分,未通过得 分。