2103: 转逆波兰表达式
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:13
Solved:4
Description
给你一个只包含整数、加减乘除运算符以及圆括号的中缀算术表达式字符串 s,请将其转换为逆波兰表示法(RPN,后缀表达式),并输出转换结果。
本题只需完成转换,不需要对表达式求值。
运算符仅包含:+、-、*、/。
括号仅包含:(、)。
整数为十进制,可能为多位数;表达式中可能包含空格。
-
运算符优先级:
*、/高于+、-。 -
结合性:上述四种运算符均为左结合。
-
括号优先级最高。
-
允许一元负号出现在数字前(如
-4、(-15)),其应当被视为数字的一部分,即输出时为一个整体 token-4、-15。-
说明:一元负号只会直接修饰数字,不会出现
-(...)这种形式。
-
Input
输入一行为字符串 s,表示一个合法的中缀表达式。字符串中可能含有任意数量的空格。
Output
输出该表达式对应的逆波兰表达式,各记号之间用单个空格分隔。
-
记号包括:整数(如
12、-7)、运算符(+ - * /)。 -
不要在行首或行尾输出额外空格;行末换行可有可无,判题不受影响。
Sample Input Copy
2 - 1 + ( -4 + 1 )
Sample Output Copy
2 1 - -4 1 + +
HINT
数据范围
-
1 <= s.length <= 1000 -
数字范围:
-3000 <= 整数 <= 3000 -
s仅由数字字符、空格、+ - * / ( )组成,并保证表达式合法且括号匹配。 -
输入中不会出现
-(...)的一元负号形式;若出现负数,均直接以-紧贴数字的形式给出(如-7、(-12))。