算法:有效的括号(入栈出栈)
2023-12-13 15:36:40
时间复杂度 O(n)?空间复杂度 O(n+∣Σ∣),其中?Σ?表示字符集,本题中字符串只包含?6?种括号
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
const map = {"(":")","{":"}","[":"]"}
let arr = []
// 如果输入的数组为奇数时一定不满足条件
if(s.split('').length%2!==0){
return false
}
for(let item of s){
// 如果当前括号为左括号,将右括号压入栈
if(map[item]){
arr.push(map[item])
}else{
// 如果当前的括号是右括号,则弹出栈尾的括号判断是否等于当前的括号
// 等于则继续循环,不等于则括号不匹配
if (arr.pop()!== item) {
return false;
}
}
}
return arr.length === 0
};
文章来源:https://blog.csdn.net/sdhshsjh/article/details/134902586
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!