当前位置:首页 > 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实现递归函数

Vue 中实现递归函数的方法 在 Vue 中实现递归函数通常用于处理树形结构数据、嵌套组件或递归算法。以下是几种常见实现方式: 递归组件实现 Vue 允许组件在其模板中调用自身,通过 name 选项…

react如何定义全局函数

react如何定义全局函数

定义全局函数的几种方法 在React中定义全局函数可以通过多种方式实现,以下是常见的几种方法: 使用全局变量挂载 将函数直接挂载到window对象上,使其成为全局可访问的函数。这种方式简单直接,但…

react函数组件如何混合

react函数组件如何混合

混合 React 函数组件的方法 在 React 中,函数组件可以通过组合、高阶组件(HOC)、自定义 Hook 或 Render Props 等方式实现混合功能。以下是几种常见的方法: 使用自定义…

react组建中如何调用函数

react组建中如何调用函数

在 React 组件中调用函数的方法 React 组件中调用函数的方式取决于函数的定义位置和作用域。以下是常见的几种方法: 在组件内部定义并调用函数 函数可以直接在组件内部定义,并通过事件或生命周期…

react高阶函数如何写

react高阶函数如何写

高阶函数的基本概念 高阶函数(Higher-Order Function)是指接收函数作为参数或返回函数的函数。在React中,高阶函数常用于逻辑复用、组件增强或事件处理封装。 接收函数作为参数…

react如何控制函数组件更新

react如何控制函数组件更新

控制函数组件更新的方法 在React中,函数组件的更新通常由状态(state)或属性(props)的变化触发。以下是几种常见的控制函数组件更新的方法: 使用React.memo进行浅比较 React…