给定一个只包含字符'(',')','{','}','['和']'的字符串,确定输入字符串是否有效。
如果输入字符串有效:必须使用相同类型的括号关闭左括号。
必须以正确的顺序关闭打开括号。
请注意,空字符串也被视为有效。
例1:
输入:“()”
输出:true
例2:
输入:“()[] {}”
输出:true
例3:
输入:“(]”
输出:false
例4:
输入:“([]]”
输出:false
例5:
输入:“{[]}”
输出:true
var isValid = function (s){
var valid = true,
stack = [],
model = {
'(':')',
'[':']',
'{':'}'
};
for (let i = 0; i < s.length; i++) {
if(['(','[','{'].indexOf(s[i])>-1){
stack.push(s[i])
}else{
var notExist = stack.pop()
if(s[i]!==model[notExist]){
return false
}
}
}
if(stack.length>0) return false
return valid
}
var str = "([)]"
isValid(str)
// false
var str1 = "({})[]"
isValid(str1)
// true