5985: 进阶7.4.2 括号匹配

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

题目描述

“正则括号”序列的定义如下:     

  • 空序列是一个正则括号序列;
  • 若s是正则括号序列,则(s)和[s]也是正则括号序列;
  • 若a和b是正则括号序列,则ab也是正则括号序列;
  • 没有其他序列是正则括号序列。

例如:()、[]、(())、()[]()[()]都是正则括号序列,而(、] )(、([)]、([(]不是正则括号序列;给定初始序列[((([])],最长的正则括号子序列是[([])],其长度是6。     

给定许多括号序列,求解其最长的正则括号子序列的长度。  

(子序列:在原序列中找出一部分,组成的新序列。也就是说选取的对象可以不连续,但顺序不可变!)  

输入

输入包含多个测试用例,总数量不超过1000。
每个测试用例都只包含一行由(、)、[、]组成的字符串,长度为[1,100]。
输入的结尾由包含“end” 的行标记,不应对其进行处理。

输出

对每个测试用例,都单行输出最长的正则括号子序列的长度。

样例输入 复制

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

样例输出 复制

6
6
4
0
6