zoukankan      html  css  js  c++  java
  • LeetCode-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:

    "((()))", "(()())", "(())()", "()(())", "()()()"

    很简单的递归实现

    class Solution {
    public:
        void Sub(vector<string>* ret,string* s,int level,int left,int current){
            if(left==0){
                while(level>0){
                    (*s)[current]=')';
                    level--;
                    current++;
                }
                (*ret).push_back(*s);
            }
            else{
                (*s)[current]='(';
                Sub(ret,s,level+1,left-1,current+1);
                if(level!=0){
                    (*s)[current]=')';
                    Sub(ret,s,level-1,left,current+1);
                }
            }
        }
        vector<string> generateParenthesis(int n) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            vector<string> ret;
            string s;
            s.resize(2*n);
            Sub(&ret,&s,0,n,0);
            return ret;
        }
    };
    
  • 相关阅读:
    连接数据库
    单行函数
    最小生成树
    hdu 1018
    组合 母函数 hdu 1171
    石子合并
    hdu 1047
    java 小综合
    java 声音处理
    并查集 1213
  • 原文地址:https://www.cnblogs.com/superzrx/p/3331610.html
Copyright © 2011-2022 走看看