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:



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

  backtracking solution:

class Solution {

private :

    int n;

    vector<string> result;

public:

   

    vector<string> generateParenthesis(int n) {

        // Start typing your C/C++ solution below

        // DO NOT write int main() function

        rs.clear() ;

        if(n <1 ) return  rs;

        this.n = n;

        string s;

        

        backtracking(s,0,0);

        

        return result ;

        

    }

    void backtracking(string path, int left, int right)

    {

      if(left > n || right > n) return ;

      

      if(path.size() == 2*n )

             result.push_back(path);

             

       if(left+1 <= n)

           backtracking(path+'(', left+1, right );

       if(right+1<= left)

           backtracking(path+')',left, right+1) ;

    

    }







};

 

你可能感兴趣的:(LeetCode)