A5098 Brackets

暂无评定 传统题 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交1/2

A5098Brackets

暂无评定 传统题 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交1/2

题目描述

给定一个只包含 (、)、[、] 的字符串。你可以删除任意数量的字符,剩下的字符相对顺序保持不变。

请输出可以得到的最长合法括号子序列的长度。合法括号序列需要满足:

  • 每个左括号都能与一个类型相同的右括号匹配;
  • 匹配的左括号出现在对应右括号之前;
  • 括号可以嵌套,但不能交叉匹配。

例如,([]) 是长度为 44 的合法括号序列;([)] 中括号交叉,不能整体匹配,但可以选出 () 或 [],答案为 22。

输入格式

输入包含多组数据,每组数据占一行,为一个只包含 (、)、[、] 的非空字符串。

输入以单独一行的 0 结束。

输出格式

对于每组数据,输出一行一个整数,表示最长合法括号子序列的长度。

样例

([])
([][]
[])(
([)]
0
4
4
2
2

数据范围

  • 每个括号串长度不超过 100100;
  • 字符串只包含 (、)、[、]。