有效的括号
| Category | Difficulty | Likes | Dislikes |
|---|---|---|---|
| algorithms | Easy (44.44%) | 2582 | - |
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
个人题解
var isValid = function(s) {
const obj = {
'{':'}',
'(':')',
'[':']'
}
let arr = [];
for(let i = 0;i<s.length;i++){
if(s[i]==='('||s[i]==='{'||s[i]==='['){
arr.push(s[i]);
}else if(s[i]!==obj[arr[arr.length-1]]){
return false;
}else {
arr.pop(s[i]);
}
}
return arr.length === 0;
};
分析
【栈概念】
- 匹配类的操作,可以定义一个一一对应的对象。
- arr.length === 0本身就返回布尔值。