美文网首页
括号匹配方案

括号匹配方案

作者: 小小的白菜 | 来源:发表于2018-10-08 16:02 被阅读0次

合法的括号匹配序列被定义为:

  1. 空串""是合法的括号序列;
  2. 如果"X"和"Y"是合法的序列,那么"XY"也是一个合法的括号序列;
  3. 如果"X"是一个合法的序列,那么"(X)"也是一个合法的括号序列;
  4. 每个合法的括号序列都可以由上面的规则生成;

例如"", "()", "()()()", "(()())", "(((())))"都是合法的。 东东现在有一个合法的括号序列s,一次移除操作分为两步:
1. 移除序列s中第一个左括号;
2. 移除序列s中任意一个右括号.保证操作之后s还是一个合法的括号序列。

东东现在想知道使用上述的移除操作有多少种方案可以把序列s变为空。如果两个方案中有一次移除操作移除的是不同的右括号就认为是不同的方案。

例如: s = "()()()()()",输出1, 因为每次都只能选择被移除的左括号所相邻的右括号。
s = "(((())))",输出24, 第一次有4种情况, 第二次有3种情况, ... ,依次类推, 4 * 3 * 2 * 1 = 24 。

输入描述

输入包括一行,一个合法的括号序列s,序列长度length(2 ≤ length ≤ 20)。

输出描述

输出一个整数,表示方案数。

输入例子1

(((())))

输出例子1

24

function deal(line){
    var array = line.split("");
    var count = 0;
    var sum = 1;
    var arrLen = array.length;
    for(var i=0;i<arrLen;i++){
        if(array[i] == "("){
            count++;
        }else{
            sum *=count;
            count--;
        }
    }
    console.log(sum);
}

参考文章

www.cnblogs.com/tbt123/p/6920729.html

相关文章

  • 括号匹配方案

    合法的括号匹配序列被定义为: 空串""是合法的括号序列; 如果"X"和"Y"是合法的序列,那么"XY"也是一个合法...

  • 京东2018秋招笔试编程题集合

    1.括号匹配方案 合法的括号匹配序列被定义为: 空串""是合法的括号序列 如果"X"和"Y"是合法的序列,那么"X...

  • 3. 一些算法问题

    1. 括号匹配问题 算法:括号匹配问题 - 简书 C程序括号匹配检查 - Jason ZHANG的博客 - CSD...

  • 栈、队列解决问题

    栈解决括号匹配问题 一个字符串中包含小括号、中括号、大括号,判断该字符串中的括号是否匹配 ()()[]{} 匹配...

  • Python爬虫 使用正则表达式匹配邮箱和括号中的内容

    匹配邮箱 匹配括号

  • 括号匹配

  • 括号匹配

    检查一段C语言代码的小括号( )、 中括号 [ ] 和大括号{ } 是否匹配。

  • 括号匹配

    这道题不同于LC921. 使括号有效的最少添加,这里是两种括号。 dp,f[i][j]表示从i位到j位的序列变为合...

  • 括号匹配

    题目:假设表达式中允许包含两种括号:圆括号与方括号,其嵌套顺序随意,即() 或者[([][])] 都是正确的。而这...

  • 盘点c语言学习中易犯得八大错误

    初学者常犯的错误是: 1:分号忘记 2:大括号不匹配,中括号不匹配,小括号不匹配(你应该先打括号,再填入内容:切记...

网友评论

      本文标题:括号匹配方案

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