A. 前缀表达式

    传统题 1000ms 512MiB

前缀表达式

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

前缀表达式

题目描述

奶龙正在学习表达式求值,ta 了解到表达式可以有中缀形式(运算符在操作数中间,如 A+BA+B)和前缀形式(运算符在操作数前面,如 +AB+AB)。现在他需要将一个简单的中缀表达式转换为前缀表达式。

转换规则如下:

  1. 表达式只包含单个大写字母作为操作数,以及加号 ++ 和减号 - 作为运算符
  2. 运算符都是二元运算符(需要两个操作数)
  3. 不需要考虑运算符优先级问题,表达式总是从左到右计算(即所有运算符优先级相同,都是左结合的)

例如:

  • 中缀表达式 A+BCA+B-C 对应的前缀表达式是 +ABC-+ABC
  • 中缀表达式 A+BA+B 对应的前缀表达式是 +AB+AB

输入格式

输入一行,包含一个合法的中缀表达式 SS.

输出格式

输出一行,表示转换后的前缀表达式。

样例 #1

样例输入 #1

A+B-C

样例输出 #1

-+ABC

样例 #2

样例输入 #2

A+B+C-D+E

样例输出 #2

+-++ABCDE

数据范围

对于全部数据:

  • 表达式长度 10000\leq 10000
  • 表达式只包含大写字母和 ++- 运算符
  • 表达式保证合法(即每个运算符都有两个操作数)

样例解释

对于样例一:

  1. 先计算 A+BA+B,转换为 +AB+AB
  2. 然后计算 (A+B)C(A+B)-C,转换为 +ABC-+ABC

对于样例二:

  1. 从左到右依次转换:
    • A+B+ABA+B \rightarrow +AB
    • (A+B)+C++ABC(A+B)+C \rightarrow ++ABC
    • ((A+B)+C)D++ABCD((A+B)+C)-D \rightarrow -++ABCD
    • (((A+B)+C)D)+E+++ABCDE(((A+B)+C)-D)+E \rightarrow +++-ABCDE

[YDRB#007] 劳动的 Oier 最光荣 · 云斗五月 Bronze Round

未参加
状态
已结束
规则
IOI
题目
6
开始于
2025-4-30 18:00
结束于
2025-5-5 21:30
持续时间
4.5 小时
主持人
参赛人数
121