#J50006. 括号匹配
括号匹配
问题描述
给定一个由 种字符 (, ), [, ], <, > 组成的字符串 。
当字符串 满足以下条件时,称其为卡芙乐括号列:
通过执行以下操作若干次(包括零次)可以将 变为空字符串:
- 若 中存在连续的
(),[],<>子字符串,选择其中任意一个删除; - 若删除的子字符串位于 的开头或结尾,则将剩余部分作为新的 ;
- 否则,将删除位置前后的字符串连接为新的 。
请你判断 是否为卡芙乐括号列。
输入格式
第一行输入一个字符串 。
输出格式
若 是卡芙乐括号列则输出 Yes,否则输出 No。
样例输入 1
([])<>()
样例输出 1
Yes
样例输入 2
([<)]>
样例输出 2
No
样例输入 3
())
样例输出 3
No
说明
样例 1 解释:
对于 ([])<>(),可通过以下操作变为空字符串:
- 删除第 个字符
[],得到新字符串()<>(); - 删除第 个字符
(),得到新字符串<>(); - 删除第 个字符
<>,得到新字符串(); - 删除
()后字符串变为空。 因此输出Yes。
样例 2 解释:
([<)]> 不包含任何 (), [], <> 子字符串,无法执行任何操作,因此输出 No。
样例 3 解释:
无法通过操作将 ()) 变为空字符串,因此输出 No。
评测数据规模
对于所有评测数据:
- 仅由
(,),[,],<,>组成