#P9857. [CCC 2008 J4] From Prefix to Postfix

[CCC 2008 J4] From Prefix to Postfix

Description

前缀表示法是一种非传统的算术表达式书写方式。标准的算术表达式书写方式,也被称为中缀表示法,将二元运算符置于操作数之间,例如 3+43 + 4,而在前缀表示法中,运算符置于操作数之前,例如 ++ 33 44。类似地,525 - 2 的前缀表示法是 - 55 22。具有二元运算符的前缀表达式的一个优点是无需括号,因为运算顺序没有歧义。例如,5(42)5 - (4 - 2) 的前缀表示为 5-5 - 44 22,而 (54)2(5 - 4) - 2 的前缀表示为 - - 55 44 22。前缀表示法也被称为波兰表示法,以纪念波兰逻辑学家 Jan Łukasiewicz,他在 1920 年左右发明了这种表示法。

类似地,在后缀表示法或逆波兰表示法中,运算符置于操作数之后。

例如,中缀表达式 (54)2(5 - 4) - 2 的后缀表示为 55 44 - 22 -。你的任务是编写一个程序,将前缀算术表达式转换为后缀算术表达式。

Input Format

每行包含一个算术前缀表达式。运算符为 ++-,数字均为单位数的十进制数。运算符和数字之间用一个空格分隔,行首没有空格。输入的结束由单独一行的 00 标记。可以假设每个输入行包含少于 20 个运算符的有效前缀表达式。

Output Format

将每个表达式转换为后缀表示法,并在单独的行上输出。数字和运算符之间至少用一个空格分隔。最后的 00 不翻译。

1
+ 1 2
- 2 2
+ 2 - 2 1
- - 3 + 2 1 9
0
1
1 2 +
2 2 -
2 2 1 - +
3 2 1 + - 9 -

Hint

题面翻译由 ChatGPT-4o 提供。