20. 有效的括号
题目
- 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = "()[]{}"
输出:true
示例 2:
输入:s = "(]"
输出:false
题解:栈
- 遇到一个左括号,把对应的右括号推入栈,遇到一个右括号出栈,如果不一样就false
var isValid = function(s) {
if(s.length %2 != 0) return false//奇数返回false
const res = []
for (let i=0;i<s.length;i++){
if(s[i]=='('){
res.push(')')
}else if(s[i]=='['){
res.push(']')
}else if(s[i]=='{'){
res.push('}')
}else if(s[i]==')' || s[i]==']' || s[i]=='}'){
const a = res.pop()
if(a!=s[i]) return false
}
}
if(res.length != 0) return false//最后处理完栈不为空:‘((’
return true
};
浙公网安备 33010602011771号