zoukankan      html  css  js  c++  java
  • LeetCode22.括号生成 JavaScript

    给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。

    例如,给出 = 3,生成结果为:

    [
      "((()))",
      "(()())",
      "(())()",
      "()(())",
      "()()()"
    ]

    /**
     * @param {number} n
     * @return {string[]}
     */
    var generateParenthesis = function(n) {
        if (n == 1) {
            return ["()"];
        }
        
        let maxCombo = [];
        maxCombo[0] = 0;
        for (let i = 1; i < n * 2; i++) {
            if (i > n + 1) {
                maxCombo[i] = 0;
            } else {
                maxCombo[i] = 1;
            }
        }
        
        let maxComboCount = parseInt(maxCombo.join(''), 2);
        let leastComboCount = parseInt(Array(n).fill(1).join(''), 2);
        let results = [];
    
        for (let i = leastComboCount; i < maxComboCount; i++) {
            let binary = i.toString(2);
    
            let balancer_0 = n * 2 - binary.length;
            let balancer_1 = 0;
            let cont = false;
    
            let result = '';
            
            for (let j = 0; j < balancer_0; j++) {
                result += '(';
            }
            
            for (let j = 0; j < binary.length; j++) {
                if (binary[j] == '0') {
                    balancer_0 += 1;
                    result += '(';
                } else {
                    balancer_1 += 1;
                    result += ')';
                }
    
                if (balancer_1 > balancer_0) {
                    cont = true;
                    break;
                }
            }
    
            if (cont || balancer_0 != balancer_1) {
                continue;
            }
            
            results.push(result);
        }
        return results;
    };
  • 相关阅读:
    A*算法实现 八数码问题
    poj 1077 Eight(bfs,dbfs, A*)
    poj 1729 Jack and Jill (搜索,bfs)
    poj 4105 拯救公主(bfs)
    poj4091The Closest M Points(KD-tree)
    资源整理
    推荐 VS2010入门教程—鸡啄米
    Cstring的使用
    VC 中TEXT、_T、L的区别
    电脑内存和CPU的关系
  • 原文地址:https://www.cnblogs.com/lhh520/p/10389566.html
Copyright © 2011-2022 走看看