1816: 括号序列

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:3 解决:0

题目描述

定义如下规则序列(字符串)

1.空序列是规则序列;

2.如果S是规则序列,那么(S)也是规则序列;

3.如果AB都是规则序列,那么AB也是规则序列。

例如,下面的字符串都是规则序列:

()[](())([])()[]()[()]

而以下几个则不是:

([])(())([()

现在,给你一些由‘(’‘)’‘[’‘]’构成的序列,你要做的,是找出一个最短规则序列,使得给你的那个序列是你给出的规则序列的子列。(对于序列a1a2,…, 和序列blb2,…, ,如果存在一组下标1i1<i2<< m,使得aj= 对一切1jn成立,那么a1a2…, 就叫做b1b2,…, 的子列)。

输入

输入文件仅一行,全部由‘(’‘)’‘]’‘]’组成,没有其他字符,长度不超过100

输出

输出文件也仅有一行,全部由‘(’‘)’‘]’‘]’组成,没有其他字符,把你找到的规则序列输出即可。因为规则序列可能不止一个,因此要求输出的规则序列中嵌套的层数尽可能地少。

样例输入 复制

([()

样例输出 复制

()[]()

提示

{最多的嵌套层数为1,如层数为2时的一种为()[()]}