问题:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
解题思路,
根据满足条件1:分析:括号必须成对出现的,所以字符的数量判断其为偶数,
根据条件1和2:如果想让其判断为ture 最中间的两个括号一定是闭合的括号
首先判断字符是否为偶数
之后将符合开闭类型相同的括号 以键值对的形式存储
定义一个数组,将其以栈的形式存储
先遍历字符串为字符,根据哈希表的左右括号来分别判断,如果是左括号就以栈的形式放入数组
右括号直接判断已有的数组是否为空,如果为空证明字符串以右括号开头,不满足条件,并判断右括号的所对应的左括号是否为栈顶元素,如果不是栈顶元素,则不满足条件。
别人思路:
以巧劲解决,根据题目要求判断是否以两种括号成对出现是否进行判断,这样根据内容学习。