#P0721. 口号编辑器
口号编辑器
题目描述
ACM 比赛开始前,一支队伍正在修改自己的队伍口号。
一开始,队伍口号是一个字符串 s,光标位于字符串末尾。接下来会进行 q 次编辑操作,每次操作可能会移动光标、插入字符、删除字符,或者把整个字符串反转。
请你按照给定顺序模拟所有操作,并输出最终的队伍口号。
共有五种操作:
LEFT:如果光标不在最左边,将光标向左移动一位;RIGHT:如果光标不在最右边,将光标向右移动一位;INS c:在光标所在位置插入字符c,插入后光标移动到新字符右侧;DEL:删除光标右侧的第一个字符;如果光标已经在最右边,则不进行任何操作;REV:将当前字符串整体反转,光标也跟着移动到反转后对应的位置。
如果最终字符串为空,第一行输出 EMPTY。
第二行输出最终光标左侧有多少个字符。
输入格式
第 1 行输入一个字符串 s,表示初始队伍口号。
第 2 行输入一个整数 q,表示操作次数。
接下来 q 行,每行输入一个操作,格式为 LEFT、RIGHT、INS c、DEL 或 REV。
输出格式
输出共 2 行。
第 1 行输出所有操作完成后的队伍口号。如果最终字符串为空,输出 EMPTY。
第 2 行输出最终光标左侧有多少个字符。
样例
Team
7
LEFT
LEFT
INS 2
RIGHT
INS 6
REV
DEL
ma2eT
1
x
3
LEFT
DEL
DEL
EMPTY
0
样例说明
样例 1 中,初始光标在 Team 末尾。经过移动、插入、反转和删除操作后,最终字符串为 ma2eT,光标左侧有 1 个字符。
样例 2 中,先将光标移动到最左边,第一次 DEL 删除字符 x,第二次 DEL 不产生变化,因此输出 EMPTY 和 0。
数据范围
- 对于
100%的数据,满足1 <= s.length() <= 100 1 <= q <= 100- 字符串
s和操作中的字符c只包含大小写英文字母和数字字符