5985: 进阶7.4.2 括号匹配
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:37
解决:26
题目描述
“正则括号”序列的定义如下:
- 空序列是一个正则括号序列;
- 若s是正则括号序列,则(s)和[s]也是正则括号序列;
- 若a和b是正则括号序列,则ab也是正则括号序列;
- 没有其他序列是正则括号序列。
例如:()、[]、(())、()[]()[()]都是正则括号序列,而(、] )(、([)]、([(]不是正则括号序列;给定初始序列[((([])],最长的正则括号子序列是[([])],其长度是6。
给定许多括号序列,求解其最长的正则括号子序列的长度。
(子序列:在原序列中找出一部分,组成的新序列。也就是说选取的对象可以不连续,但顺序不可变!)
输入
输入包含多个测试用例,总数量不超过1000。
每个测试用例都只包含一行由(、)、[、]组成的字符串,长度为[1,100]。
输入的结尾由包含“end” 的行标记,不应对其进行处理。
每个测试用例都只包含一行由(、)、[、]组成的字符串,长度为[1,100]。
输入的结尾由包含“end” 的行标记,不应对其进行处理。
输出
对每个测试用例,都单行输出最长的正则括号子序列的长度。
样例输入 复制
((()))
()()()
([]])
)[)(
([][][)
end
样例输出 复制
6
6
4
0
6