请使用js完成有效括号算法题
以下是使用JavaScript实现有效括号算法的代码:
function isValid(s) {
const stack = [];
const brackets = {
"(": ")",
"[": "]",
"{": "}"
};
for (let i = 0; i < s.length; i++) {
if (brackets[s[i]]) {
stack.push(s[i]);
} else {
const lastBracket = stack.pop();
if (s[i] !== brackets[lastBracket]) {
return false;
}
}
}
return stack.length === 0;
}
console.log(isValid("()")); // true
console.log(isValid("()[]{}")); // true
console.log(isValid("(]")); // false
console.log(isValid("([)]")); // false
console.log(isValid("{[]}")); // true
该算法使用栈数据结构来判断括号是否匹配。在遍历字符串时,如果遇到左括号,则将其加入栈中;如果遇到右括号,则从栈顶弹出一个左括号,并判断它与当前右括号是否匹配。如果不匹配,则字符串无效;如果匹配,则继续遍历字符串。最后,如果栈中还有剩余的左括号,说明字符串无效。如果栈为空,则说明字符串有效。
原文地址: http://www.cveoy.top/t/topic/brKO 著作权归作者所有。请勿转载和采集!