#C0008. 表达式转换

表达式转换

题目背景

出题团:Code.出题团

出题人:kuangfengzhixi\text{kuangfengzhixi}

难度评级:SkyWave\text{SkyWave}

题目描述

现给予一个中缀表达式 NN,请把它转换成后缀表达式。

注意

NN 中可能含有 + - × ÷ ^ ( ) [ ] { }


中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。 中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易理解与分析中缀表达式,但对计算机来说中缀表达式却是很复杂的,因此计算表达式的值时,通常需要先将中缀表达式转换为前缀或后缀表达式,然后再进行求值。 对计算机来说,计算前缀或后缀表达式的值非常简单 。


后缀表达式(也称为 逆波兰表达式 )是一种将运算符放置在操作数后面的表达式,例如:3 4 2 * 1 5 - 2 ^ / +。 在后缀表达式中, 所有操作符的优先级相同,而括号则不再需要。

输入格式

仅一行一个一个字符串 NN,表示需要转换的中缀表达式。转换方法

输出格式

仅一行一个字符串,表示 NN 转换后的后缀表达式,如有错误的中缀表达式(如样例#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)

对于30%的数据,保证输入的中缀表达式完全合法且只含有对于30\%的数据,保证输入的中缀表达式完全合法且只含有 + - × ÷ ( )

对于100%的数据,1N.size10000对于100\%的数据,1 \le N.size \le 10000

Q&A

本题有多个评测子任务

  • Subtask #1 为测试数据,单个测试点通过得 1010 分,未通过得 00 分。

  • Subtask #2 为样例,单个测试点通过得 00 分,未通过得 00 分。