题目地址:有效的括号
方式1:使用栈解决
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
if(s.length %2 != 0) return false
let stack = []
for(let i = 0;i < s.length;i++){
if(s[i] == '(' || s[i] == '[' || s[i] == '{'){
stack.push(s[i])
}else{
if(s[i] == ')' && stack[stack.length - 1] == '(' ||
s[i] == ']' && stack[stack.length - 1] == '[' ||
s[i] == '}' && stack[stack.length - 1] == '{'){
stack.pop()
}else{
return false
}
}
}
return stack.length == 0;
};
栈中只能有左括号或者右括号,匹配到左括号时进栈,匹配右括号时匹配成功会出栈,如果失败,就结束匹配。
其他方式:待补充。。