给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。
示例 1: 输入:s = "()" 输出:true
示例 2: 输入:s = "()[]{}" 输出:true
示例 3: 输入:s = "(]" 输出:false
示例 4: 输入:s = "([)]" 输出:false
示例 5: 输入:s = "{[]}" 输出:true
var isValid = function(s) {
while(s.length){
let temp = s
s=s.replace('()', '');
s=s.replace('{}', '');
s=s.replace('[]', '');
if(s === temp) return false
}
return true
};
推荐使用stack结构
let stack = []
for(let i=0; i<s.length; i++){
let c = s[i];
switch(c) {
case '(':
stack.push(')');
break
case '[':
stack.push(']');
break
case '{':
stack.push('}');
break
default:
if(c !== stack.pop()){
return false
}
}
}
return stack.length === 0