当前位置:首页 > JavaScript

js函数实现大括号匹配

2026-01-31 09:01:37JavaScript

大括号匹配的 JavaScript 实现

大括号匹配是指检查字符串中的大括号 {} 是否成对出现且嵌套正确。以下是几种实现方法:

js函数实现大括号匹配

使用栈结构进行匹配

栈是解决括号匹配问题的经典数据结构。遍历字符串时,遇到左括号压栈,遇到右括号弹栈并检查是否匹配。

js函数实现大括号匹配

function isBalanced(str) {
  const stack = [];
  const pairs = { '{': '}' };

  for (let char of str) {
    if (pairs[char]) {
      stack.push(char);
    } else if (char === '}') {
      if (stack.length === 0 || pairs[stack.pop()] !== char) {
        return false;
      }
    }
  }

  return stack.length === 0;
}

简化计数器版本

如果不考虑嵌套层级,仅检查数量是否匹配,可以使用计数器实现:

function isSimpleBalanced(str) {
  let count = 0;
  for (let char of str) {
    if (char === '{') count++;
    if (char === '}') count--;
    if (count < 0) return false; // 右括号出现在左括号前
  }
  return count === 0;
}

处理多类型括号扩展

需要同时匹配多种括号类型时(如 {}, [], ()),扩展栈方法:

function isMultiBalanced(str) {
  const stack = [];
  const pairs = { '{': '}', '[': ']', '(': ')' };

  for (let char of str) {
    if (pairs[char]) {
      stack.push(char);
    } else if (Object.values(pairs).includes(char)) {
      if (stack.length === 0 || pairs[stack.pop()] !== char) {
        return false;
      }
    }
  }

  return stack.length === 0;
}

测试用例示例

console.log(isBalanced('{}{}')); // true
console.log(isBalanced('{{}')); // false
console.log(isBalanced('}{')); // false
console.log(isMultiBalanced('{[()]}')); // true

注意事项

  • 空字符串应返回 true(视为有效匹配)
  • 非括号字符应被忽略
  • 右括号不能出现在对应的左括号之前
  • 栈最终必须为空才能判定为完全匹配

标签: 括号函数
分享给朋友:

相关文章

vue中实现节流函数

vue中实现节流函数

使用 Lodash 的 _.throttle 方法 安装 Lodash 并导入 throttle 方法: npm install lodash 在 Vue 组件中使用: import { thro…

react函数组件如何销毁事件

react函数组件如何销毁事件

在 React 函数组件中销毁事件 React 函数组件中需要手动销毁事件监听或定时器,以避免内存泄漏和性能问题。以下是几种常见情况的处理方法: 使用 useEffect 清理副作用 在函数组件中,…

react类函数中如何获取到props

react类函数中如何获取到props

在React类组件中获取props可以通过以下几种方式实现: 通过构造函数获取 在类组件的构造函数中,props会作为第一个参数传入。可以通过super(props)调用父类构造函数,并将props…

php 函数 实现

php 函数 实现

PHP 函数实现基础 PHP 函数通过 function 关键字定义,语法如下: function functionName($param1, $param2 = "default") {…

js匿名函数实现加法

js匿名函数实现加法

使用匿名函数实现加法 在JavaScript中,匿名函数(也称为lambda函数或箭头函数)可以简洁地实现加法操作。以下是几种常见的方式: 方式1:箭头函数表达式 const add =…

js函数实现开平方

js函数实现开平方

在JavaScript中实现开平方可以通过多种方法完成,以下是几种常见的实现方式: 使用Math.sqrt() JavaScript内置的Math.sqrt()方法是最直接的方式,返回一个数的平方根…