DS3 有效括号序列
约 237 字小于 1 分钟
2025-07-08
描述
给出一个仅包含字符'(', ')', '{', '}', '['和']', 的字符串,判断给出的字符串是否是合法的括号序列
括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。
链接
示例
输入:"["
返回值:false
输入:"[]"
返回值:true
输入:"()[]{}"
返回值:true
输入:"([)]"
返回值:false
输入:"(("
返回值:false题解
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return bool布尔型
*/
function isValid(s) {
// write code here
if (s.length % 2) return false;
s = s.split("");
let stack = [];
let strMap = { "]": "[", "}": "{", ")": "(" };
for (let i = 0; i < s.length; i++) {
const str = s[i];
if (str === "[" || str === "(" || str === "{") {
stack.push(str);
} else {
const top = stack[stack.length - 1];
const res = strMap[str];
if (res === top) {
stack.pop();
} else {
return false;
}
}
}
if (stack.length) return false;
return true;
}
module.exports = {
isValid: isValid,
};