一、题目描述💯
- 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
二、思路分析
- 很明显,这个问题用栈这个数据结构会很方便
- 设置匹配规则,循环一次字符串,判断要进栈的元素与栈顶元素是否匹配,匹配的话,就弹出栈顶元素,不匹配就压入要进栈的元素。直到循环结束。如果栈里没有元素,说明匹配成功。
三、代码实现🎏
var isValid = function(s) {
let res = []
res.push(s[0])
for(let i=1;i<s.length;i++){
if(s[i] == ')'&& res[res.length -1] == '('){
res.pop();
}else if(s[i] == '}'&& res[res.length -1]=='{'){
res.pop();
}else if(s[i] == ']'&&res[res.length -1]=='['){
res.pop();
}else{
res.push(s[i])
}
}
return res.length == 0
};
感谢🙇
点赞支持👍