20. 有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = "()"
输出:true
示例 2:
输入:s = "()[]{}"
输出:true
示例 3:
输入:s = "(]"
输出:false
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
↓↓↓
‘==’一般就用来判断空和undefined,日常中都建议多多使用‘===’来进行判断
var isValid = function(s) {
// 就三种情况:() {} [] 如果正确,最里面那一个肯定是闭合的,一个个消消乐就行(看题解看到的恍然大悟的方法嗷)
// 如果字符串是单数,那肯定不成对,false
if (s.length % 2 === 1) {
return false;
} else {
var len = s.length / 2; // 如果是成对的就只需要操作总length的一半次数
for (var i = 0; i < len; i++) {
s = s.replace("()", '');
s = s.replace("[]", '');
s = s.replace("{}", '');
}
// return s.length === 0; // 其实用这句代替下面那块更好嗷,直接返回判断结果
if (s.length === 0) { // ‘==’一般就用来判断空和undefined,日常中都建议多多使用‘===’来进行判断
return true;
} else {
return false;
}
}
};