LeetCode:Generate Parentheses

Generate Parentheses

Total Accepted: 72319  Total Submissions: 207375  Difficulty: Medium

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:

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

Subscribe to see which companies asked this question

Hide Tags
  Backtracking String
Hide Similar Problems















code:


class Solution {
public:
    vector<string> generateParenthesis(int n) {
        
        vector<string> res;
        backTra(res, "", 0, 0, n);
        return res;
    }
    void backTra(vector<string> &v, string s, int left, int right, int max) {
        if(2 * max == s.size()) {
            v.push_back(s);
            return;
        }
        
        if(left < max) 
            backTra(v, s + "(", left + 1, right, max);
        if(right < left) 
            backTra(v, s + ")", left, right + 1, max);
    }
};



你可能感兴趣的:(LeetCode,generate,Parentheses)