4495:L2-2 删除括号

时间限制:1 S   /  内存限制:65536 KB
AC:16   /  Submit:98
问题描述

罗少的代码编辑器有不同的规则。

对于输入的一串括号包含小括号()中括号[]和大括号{},不保证括号序列合法,现在用$$\text{I}$$来表示光标的位置。有以下几种操作。

当括号和光标呈$$\text{()I}$$时:

如果罗少按下键盘中的$$\text{BACKSPACE}$$按键,此时括号会变成$$\text{(I}$$。

如果罗少按下$$\text{DELETE}$$按键,此时括号不发生变化。

当括号和光标呈$$\text{I()}$$时:

如果罗少按下键盘中的$$\text{BACKSPACE}$$按键,此时括号不发生变化。

如果罗少按下$$\text{DELETE}$$按键,此时括号会变成$$\text{I)}$$。

当括号和光标呈$$\text{[I]}$$时:

如果罗少按下键盘中的$$\text{BACKSPACE}$$按键,如果光标左右的括号是匹配的(属于同一种括号的左括号和右括号)。那么这个括号的左括号和右括号会被同时删除,即变成$$\text{I}$$。否则只删除左侧的括号,即对于$$\text{(I]}$$按下$$\text{BACKSPACE}$$后会变为$$\text{I]}$$。

如果罗少按下$$\text{DELETE}$$键,如果左右括号匹配,此时删除的效果和$$\text{BACKSPACE}$$一样,括号会变为$$\text{I}$$。否则只删除右侧的括号,即对于$$\text{(I]}$$按下$$\text{DELETE}$$后会变为$$\text{(I}$$。

如果罗少按下方向键的$$\text{<}$$。此时光标会向左移动一位。按下$$\text{>}$$,光标会向右移动一位。

即对于$$\text{[(I)](()\{ \})}$$,当按下$$\text{<}$$时,括号会变成$$\text{[I()](()\{ \})}$$。当按下$$\text{>}$$时,括号会变成$$\text{[()I](()\{ \})}$$。

当光标位于边缘时继续移动其位置不发生变化。当没有括号时,按下$$\text{BACKSPACE}$$和$$\text{DELETE}$$不会有任何变化。

现在罗少希望经过$$q$$次操作之后的括号会变成什么样子。

输入描述

第一行输入一个正整数$$T$$表示有$$T$$组样例。

对于每一组样例第一行输入字符串的长度$$n$$和询问的次数$$q$$。($$1 \leq n, q \leq 2 \times 10^5$$)

对于接下的一行输入一个长度为$$n$$的字符串$$S$$。

接下来$$q$$行每行输入一个题目中描述的操作,包括$$\text{BACKSPACE,DELETE,<,>}$$。

题目保证所有$$n$$的和不超过$$2 \times 10^5$$。保证所有$$q$$的和不超过$$2 \times 10^5$$。

输出描述

对于每组样例输出操作后的括号(包含光标),然后换行。

样例输入复制样例

3

7 4

(([I]))

BACKSPACE

<

DELETE

>

6 3

(I)[}{

>

>

DELETE

6 5

[(}(I]

BACKSPACE

<

BACKSPACE

DELETE

BACKSPACE

样例输出

()I)

()[I{

I

相关

2024天梯赛校内选拔赛


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1