2390 表达式的转化
Time Limit : 2000/1000 MS(Java/Others) | Memory Limit : 65536/32768 KB(Java/Others)
Submits : 0 | Solved : 0
Description
中序表达式就是我们经常用到的表达式。
如a+b,a*b+c,a*(b+c),运算符位于要运算的数据中间。
还有一种表达式叫做后序表达式,顾名思义就是
运算符位于要运算的两部分数据之后,例如:
a+b为ab+
a*b+c为ab*c+
a*(b+c)为abc+*
后序表达式有什么好处呢?
首先是可以不用括号了,你发现了吗?
然后就是运算起来很方便,再也不用担心记不住优先级了,
只要把每个运算符前的两部分数据按该运算符运算好就OK了。
但是要把中序表达式转化为后序表达式,好像不是很容易诶,
你觉得呢?试试吧...(*^__^*) 嘻嘻
Input
每次测试输入一行,长度不大于100,
是一个中序表达式,其中数据用字母a-z表示,
运算符包括+-*/和()。
Output
一组测试输出一行,为相应的后序表达式。
每个数据或运算符后带一个空格。
Sample Input
a+b a+b+c a+b*c+(d*e+f)*g
Sample Output
a b + a b + c + a b c * + d e * f + g * +
HINT
注意空格~
Source
赖敬峰 友情赞助