‹ 上一题 下一题 ›

g5-08211. 括号顺序检查 未做

1000 ms 256 MB 测试点 10 通过率 100% GESP-55级·STLstack

题目描述

给定一个只含圆括号 (、) 与方括号 [、] 的字符串,判断它是否匹配。匹配的含义是:从左到右逐个看字符,遇到左括号就先记下来等待配对;遇到右括号时,它必须与最近一个还没配对的左括号配对,而且两者必须是同一类型(( 配 ),[ 配 ]);看完整个串时,每个左括号都必须已经配对。满足输出 yes,否则输出 no。

「最近一个还没配对的左括号」恰好就是栈顶——这正是栈最经典的应用。

输入格式

一行一个字符串 (,只含 (、)、[、])。

输出格式

一行,匹配输出 yes,不匹配输出 no。

样例

输入:

([])()

输出:

yes

每个右括号都能和它左侧最近的未配对同型左括号配对,最后全部配完。

数据范围

。只数两种括号各自的总数相等是不够的——([)] 数量全对,顺序却是交叉的。

输入
输出

            
答案