天天看点

leetcode22 - Generate Parentheses

题目:

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

这道题题意相对简单,就是生成正确的匹配的括号。

class Solution {
public:
    void generate(int left, int right, string str, vector<string>&parenthesis){
        if(left > right || right < 0 || left < 0)return;
        else if(right == 0){
            parenthesis.push_back(str);
            return;
        }
        else
        {
            string str1 = str + "(";
            generate(left - 1, right, str1, parenthesis);
            string str2 = str + ")";
            generate(left, right - 1, str2, parenthesis);
        }
    }
    vector<string> generateParenthesis(int n) {
        vector<string>parenthesis;
        generate(n, n, "", parenthesis);
        return parenthesis;
    }
};