zoukankan      html  css  js  c++  java
  • lintcode-427-生成括号

    427-生成括号

    给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。

    样例

    给定 n = 3, 可生成的组合如下:
    "((()))", "(()())", "(())()", "()(())", "()()()"

    标签

    回溯法 递归 字符串处理 谷歌 Zenefits

    思路

    使用回溯+递归

    code

    class Solution {
    public:
        /**
         * @param n n pairs
         * @return All combinations of well-formed parentheses
         */
        vector<string> generateParenthesis(int n) {
            // Write your code here
            if (n <= 0) {
                return vector<string>();
            }
            vector<string> result;
            string temp;
            generateParenthesis(n, temp, result, 0, 0);
            return result;
        }
    
        void generateParenthesis(int n, string temp, vector<string> &result, int lCount, int rCount) {
            if (lCount == n) {
                for (int i = rCount; i < n; i++) {
                    temp += ')';
                }
                result.push_back(temp);
                return;
            }
            generateParenthesis(n, temp + '(', result, lCount + 1, rCount);
            if (lCount > rCount) {
                generateParenthesis(n, temp + ')', result, lCount, rCount + 1);
            }
        }
    };
    
  • 相关阅读:
    JQuery判断checkbox是否选中-批量
    浮动跟随
    当天时间戳范围
    统计兼职人员打标签数量
    submit回车提交影响
    js 数组去除空值
    js循环
    ajax
    滚动条位置
    oc基础-set和get方法的使用
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7390486.html
Copyright © 2011-2022 走看看