美文网首页
字符串中是否括弧是成对合法出现

字符串中是否括弧是成对合法出现

作者: Simon_King | 来源:发表于2019-04-02 23:23 被阅读0次

需求:

有一串字符串,里面包含若干个括弧,如何判断这些括弧是以成对出现的 (),且是合法的括弧 (),括弧支持嵌套

实现思路:

1.通过正则过滤出括弧(普通写法就是通过split分割字符串成一个数组,并过滤出来());
2.如果长度为0,或者不是偶数直接返回false;
3.根据左右括弧出现的顺序自加和自减,数字一定要大于等于0,因为小于0,就表示右括弧在前,不是合法的。

function isBrackets(str) {
  //过滤出所有的括弧
  //const arr = str.split('').filter(item => item === '(' || item === ')');
  const arr = str.replace(/[^(^)]/g, '').split('');
  const len = arr.length;
  if (!len || (len % 2 !== 0)) { // 如果长度为0,或者不是偶数
    return false;
  }
  let num = 0;
  arr.forEach(item => {
     /* 
      *  只有数字大于等于0时,表示左括号是多余和等于右括号啊,
      *  如果是右括号多,就表示已经有不合法的括号了
      */
    if (num >= 0) {
      if (item === '(') { // 如果是左括弧就自加1
        num++;
      }
      if (item === ')') { // 如果是右括弧就自减1
       num--;
      }
    }
  });
  return num === 0; // 只有数量为0 的时候才是成对的
}

相关文章

  • 字符串中是否括弧是成对合法出现

    需求: 有一串字符串,里面包含若干个括弧,如何判断这些括弧是以成对出现的 (),且是合法的括弧 (),括弧支持嵌套...

  • 数据结构与算法题目

    栈 1. 一个函数判断字符串中的括号是否合法,所谓合法,就是括号成对出现 计算逆波兰表达式 实现一个有min方法的...

  • 括号匹配(c语言实现)

    ⭐ 我的网站: www.mengyingjie.com ⭐ 1要求 编写程序检查该字符串的括号是否成对出现,而且不...

  • Python中的print 命令的用法

    Python编程中print的用法是输入print(),括弧中可以是数字、变量、字符串、列表、元组合字典。具体示例...

  • 贪心算法

    问题描述 模式要求:只允许出现三种字符()和*其中*可以表示(或)给定任一字符串 输出是否()成对出现 结果验证

  • IOS正则递归校验

    问题描述:校验如下字符串格式是否符合要求(括号成对出现,且数量无限制)(((a+b)*(c+d))+c)*(((a...

  • PHP json返回大括弧和中括弧,json返回**{}**和

    PHP json返回大括弧和中括弧,json返回{}和[] 有时候,前端要求返回 大括弧和中括弧 前端要求返回{...

  • 括号序列

    题目描述给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括...

  • 力扣 468 合并区间

    题意:给定一个string,判断是否是合法字符串 思路: 查看IP是否为null或空,是就返回Neither 查看...

  • 在Java开发过程中会遇到的所有apache commons包

    Commons Validator用来帮助进行验证的工具。比如验证Email字符串,日期字符串等是否合法。Comm...

网友评论

      本文标题:字符串中是否括弧是成对合法出现

      本文链接:https://www.haomeiwen.com/subject/gimibqtx.html