传统题 1000ms 256MiB

星渊控制台

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

星渊控制台 (console)

题目描述

探险员在第一层遗迹中发现了一个古老的星渊控制台。 屏幕上的输入法则非常古怪,不仅有大小写字母和数字,还包含三种特殊的控制符。如果你按下了这些控制符,它们不会直接显示在屏幕上,而是会对屏幕已有的字符或接下来的输入产生特定的效果:

  1. *退格符,按下后会删除屏幕上最后一个已输入的有效字符(如果此时屏幕为空,则忽略该操作)。
  2. ^翻转符,按下后,紧接着输入的下一个英文字母将会进行大小写翻转(大写变小写,小写变大写)。如果紧接着输入的不是字母(例如是数字或者其他控制符),则该翻转符失效并被消耗。
  3. #复制符。这个符号后面必定紧跟一个非零数字 dd1d91 \le d \le 9),例如 #3。按下后,控制台会将屏幕上当前最后一个有效字符连续复制 dd 遍并插入末尾(如果此时屏幕为空,则忽略该操作)。

现在给定一串探险员在键盘上的真实敲击序列,请你模拟这个控制台的运作,输出最终屏幕上显示的字符串。

输入格式

输入只有一行,包含一个非空字符串 SS,表示探险员的键盘敲击序列。

输出格式

输出一行字符串,表示最终屏幕上显示的内容。如果屏幕为空,输出空行。

样例 #1

样例输入 #1

a^b*c#3^1A

样例输出 #1

acccc1A

样例解释 #1

  1. a -> 屏幕:a
  2. ^ -> 标记下一个字母需翻转。
  3. b -> 因为有 ^ 标记,变成大写 B。屏幕:aB
  4. * -> 删掉最后一个字符 B。屏幕:a
  5. c -> 屏幕:ac
  6. #3 -> 把最后一个字符 c 复制 3 遍插入。屏幕:acccc
  7. ^ -> 标记下一个字母需翻转。
  8. 1 -> 因为不是字母,翻转标记失效被消耗。屏幕:acccc1
  9. A -> 正常输入。屏幕:acccc1A

数据范围

  • 对于 30%30\% 的数据,序列长度 1000\le 1000,且不包含翻转符 ^ 和复制符 #
  • 对于 100%100\% 的数据,序列长度 105\le 10^5。保证字符串只包含大小写字母、数字以及 *, ^, #,且 # 后必跟一个 191 \dots 9 的数字。

bb2026-模拟赛合集5

未认领
状态
已结束
题目
12
开始时间
2026-5-30 0:00
截止时间
2026-8-2 23:59
可延期
24 小时