文章目录
力扣第20题目:有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。
难度:简单
题目例子
提示
提示:
1 <= s.length <= 104 s 仅由括号 ‘()[]{}’ 组成
题解
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
if(s.length % 2 === 1) return false;
const stack = [];
for(var i = 0 ; i < s.length;i+=1){
const c = s[i];
if(c === '(' || c === '{' || c === "["){
stack.push(c)
}else {
const t = stack[stack.length - 1]
if(
(t === "(" && c === ')') ||
(t === "{" && c === '}') ||
(t === "[" && c === ']')
){
stack.pop();
}else {
return false
}
}
}
return stack.length === 0
};
运行结果
时间复杂度和空间复杂度
时间复杂度:O(n)
空间复杂度:O(n)