判断括号字符串是否有效 - JavaScript 代码实现

给定一个只包括 '(',')','{','}','[',']' 的字符串 s,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

输入:s = '()' 输出:true

示例 2:

输入:s = '()[]{}' 输出:true

示例 3:

输入:s = '(]' 输出:false

示例 4:

输入:s = '([)]' 输出:false

示例 5:

输入:s = '{[]}' 输出:true

提示:

  1. 1 <= s.length <= 104
  2. 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

代码解释:

  1. 使用一个栈来存储左括号。
  2. 遍历字符串,遇到左括号就将其压入栈。
  3. 遇到右括号时,从栈顶弹出元素,如果弹出的元素不是该右括号对应的左括号,则返回 false。
  4. 如果遍历完字符串后,栈为空,则说明字符串有效,否则无效。

总结:

本文介绍了如何判断括号字符串是否有效,并提供了 JavaScript 代码实现。使用栈来存储左括号,并根据右括号匹配相应的左括号,最终判断字符串是否有效。


原文地址: https://www.cveoy.top/t/topic/oH5M 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录