判断括号字符串是否有效 - JavaScript 代码实现
判断括号字符串是否有效 - JavaScript 代码实现
给定一个只包括 '(',')','{','}','[',']' 的字符串 s,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = '()' 输出:true
示例 2:
输入:s = '()[]{}' 输出:true
示例 3:
输入:s = '(]' 输出:false
示例 4:
输入:s = '([)]' 输出:false
示例 5:
输入:s = '{[]}' 输出:true
提示:
- 1 <= s.length <= 104
- s 仅由括号 '()[]{}' 组成
JavaScript 代码实现:
function isValid(s) {
const stack = [];
const map = { ')': '(', '}': '{', ']': '[' };
for (let i = 0; i < s.length; i++) {
const char = s[i];
if (char in map) {
if (stack.length === 0 || stack.pop() !== map[char]) {
return false;
}
} else {
stack.push(char);
}
}
return stack.length === 0;
}
// 测试用例
console.log(isValid('()')); // true
console.log(isValid('()[]{}')); // true
console.log(isValid('(]')); // false
console.log(isValid('([)]')); // false
console.log(isValid('{[]}')); // true
代码解释:
- 使用一个栈来存储左括号。
- 遍历字符串,遇到左括号就将其压入栈。
- 遇到右括号时,从栈顶弹出元素,如果弹出的元素不是该右括号对应的左括号,则返回 false。
- 如果遍历完字符串后,栈为空,则说明字符串有效,否则无效。
总结:
本文介绍了如何判断括号字符串是否有效,并提供了 JavaScript 代码实现。使用栈来存储左括号,并根据右括号匹配相应的左括号,最终判断字符串是否有效。
原文地址: https://www.cveoy.top/t/topic/oH5M 著作权归作者所有。请勿转载和采集!