#D0973. 字符串计算器
字符串计算器
题目描述
小 C 制作了一个字符串计算器。打开时,计算器中的内容是空字符串。他会按顺序输入以下三种指令:
+ s:把字符串 拼接到当前内容的末尾。* k:把执行这条指令前的整段内容重复 份,替换当前内容。总共是 份,包含原来那一份。例如,ab执行* 3后变成ababab。% k:只保留当前内容的前 个字符。如果当前内容不足 个字符,则保持不变。
请你输出全部指令执行完后的内容。对空字符串执行重复或保留前缀,结果仍是空字符串。
输入格式
第一行一个整数 ,表示指令数量。
接下来 行,每行一条指令,格式为 + s、* k 或 % k,指令与参数之间用一个空格隔开。 是非空小写字母串, 是整数。
输出格式
一行,输出最终的字符串。如果最终字符串为空,输出 EMPTY。
样例
6
+ ab
* 3
% 4
+ c
* 2
% 6
ababca
2
* 3
% 5
EMPTY
3
+ xyz
% 8
* 1
xyz
样例解释
样例 1:每步之后的内容依次为 ab、ababab、abab、ababc、ababcababc、ababca。重复时使用的是该步开始前的整段内容。
样例 2:初始内容为空,重复空串和保留空串的前缀都不会产生字符,因此输出 EMPTY。
样例 3:追加后为 xyz;长度不足 ,保留前缀时不变;重复 份也不改变内容。
数据范围与约定
| 子任务 | 分值 | 限制 |
|---|---|---|
不含 * 指令 |
||
| 无额外限制 |
对于 的数据:
- 。
- 所有
+ s指令中的 都是非空小写字母串,其长度之和不超过 。 * k指令中,;此类指令总共不超过 条。% k指令中,。- 保证每条指令执行完后,计算器中的字符串长度都不超过 。
相关
在下列比赛中: