给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
示例 1:
输入:s = "()"
输出:true
示例 2:
输入:s = "()[]{}"
输出:true
示例 3:
输入:s = "(]"
输出:false
示例 4:
输入:s = "([)]"
输出:false
示例 5:
输入:s = "{[]}"
输出:true
方法一
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
var arr = []
var map = new Map()
map.set('(',')')
map.set('{','}')
map.set('[',']')
for(let i=0;i<s.length;i++){
if(map.has(s[i])){
arr.push(s[i])
}else{
if(arr.length==0) return false
if(map.get(arr[arr.length-1])===s[i]) arr.pop()
else return false
}
}
if(arr.length) return false
return true
};
方法二
var len = s.length/2
for(var i=0;i<len;i++){
s = s.replace("()", "").replace("{}", "").replace("[]", "");
}
if(s){
return false
}else{
return true
}