问题描述
现在有一行括号序列,请你检查这行括号是否配对。
输入说明
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符。
输出说明
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No。
(其实输出yes和输出no这样的要求会比return true和return false要考虑的细节多……)
解题思路
这道题算是栈的应用里最经典的一道题。
举一个例子,( ( [ ] ) ] 这个序列,我们怎么看他是不是匹配好的括号,按从左往右顺序,遇到左括号先不管,一旦遇到右括号,就看这个右括号和刚刚最后一个遇到的左括号是否匹配。
后遇到的左括号要先匹配,正好符合栈这种数据结构后进先出的特点。于是我们遍历这个字符数组