开始: 2026-03-23 00:00:00

25-26赛季联合赛04

结束: 2026-03-26 00:00:00
当前  2026-04-05 04:26:33  类型: IOI  状态: 已经结束 

P2. 括号序列
描述

定义如下规则:


1. 空串是「平衡括号序列」

2. 若字符串 S 是「平衡括号序列」,那么 \texttt{[}S\texttt]\texttt{(}S\texttt) 也都是「平衡括号序列」

3. 若字符串 AB 都是「平衡括号序列」,那么 AB(两字符串拼接起来)也是「平衡括号序列」。


例如,下面的字符串都是平衡括号序列:

- `()`,`[]`,`(())`,`([])`,`()[]`,`()[()]`

而以下几个则不是:

- `(`,`[`,`]`,`)(`,`())`,`([()`

现在,给定一个仅由 `(`,`)`,`[`,`]`构成的字符串 s,请你按照如下的方式给字符串中每个字符配对:

1. 从左到右扫描整个字符串。

2. 对于当前的字符,如果它是一个右括号,考察它与它左侧离它**最近**的**未匹配**的的左括号。如果该括号与之对应(即小括号匹配小括号,中括号匹配中括号),则将二者配对。如果左侧未匹配的左括号不存在或与之不对应,则其配对失败。

配对结束后,对于 s 中全部未配对的括号,请你在其旁边添加一个字符,使得该括号和新加的括号匹配。


输入

输入只有一行一个字符串,表示 s

输出

输出一行一个字符串表示你的答案。

样例

输入

([()

输出

()[]()

输入

[([])[

输出

[]([])[]

输入

(([])

输出

()([])
提示

一共10个测试点:

测试点#1,保证只有'('括号;

测试点#2,保证只有'['括号;

测试点#3,保证只有'(',')'括号;

测试点#4,保证只有'[',']'括号;

测试点#5-7:字符串长度<=100;

测试点#8-10:字符串长度<=10000;

提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交