• 22. Generate Parentheses


    22. Generate Parentheses

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

    For example, given n = 3, a solution set is:

    [
      "((()))",
      "(()())",
      "(())()",
      "()(())",
      "()()()"
    ]
     1 /**
     2  * @param {number} n
     3  * @return {string[]}
     4  */
     5 var generateParenthesis = function(n) {
     6     
     7      var res = [];
     8     
     9     
    10     // n == 0
    11      if(n == 0){
    12          return res;
    13      }
    14     
    15     //n == 1;
    16      if(n == 1){
    17          
    18          res.push("()");
    19          return res;
    20      }
    21     
    22     
    23     
    24     
    25     //首先你会发现开头一定是"(",结尾一定是")";
    26     
    27     //还有一个明显的规律是 一定先有 "(" 再有")",也就是说,在没有到最后一个")"之前,"("的数目比右括号多
    28     
    29   
    30 
    31             
    32     function innergenerateParenthesis(str,l,r,n){
    33       
    34          if(str.length == n*2){
    35              
    36              res.push(str);
    37              return;
    38          }
    39         
    40          if(l < n){
    41              
    42          
    43              innergenerateParenthesis(str+"(",l+1,r,n);
    44              
    45          }
    46         
    47          if(r < l){
    48              
    49              
    50              innergenerateParenthesis(str+")",l,r+1,n);
    51              
    52          } 
    53         
    54     }
    55     
    56     
    57     innergenerateParenthesis("",0,0,n);
    58     
    59     
    60     return res;
    61      
    62 };
  • 相关阅读:
    yml 配置文件注入
    STS 自动生成 getter 和 setter
    maven build 失败
    navicat 使用
    STS 设置 注解提示
    windows下安装Mysql
    安装 mysql
    用Navicat Premium 操作MySQL数据库
    渐变显示渐变消失的BackgroundView
    基于dispatch_after封装YXTimer
  • 原文地址:https://www.cnblogs.com/huenchao/p/7667755.html
Copyright © 2020-2023  润新知