leetcode-----22. 括号生成

分析

1.任意前缀中左括号数大于等于右括号数;
2.结果中左括号数等于右括号数。  

算法(dfs)代码

class Solution {
public:
    vector<string> ans;
    void dfs(int l, int r, int n, string s) {
        if (l == n && r == n) {
            ans.push_back(s);
            return;
        } else {
            if (l < n) dfs(l + 1, r, n, s + "(");
            if (l > r && r < n) dfs(l, r + 1, n, s + ")"); 
        }
    }
    vector<string> generateParenthesis(int n) {
        if (n == 0) return ans;
        dfs(0, 0, n, "");
        return ans;
        
    }
};
posted @ 2020-06-16 09:51  景云ⁿ  阅读(66)  评论(0编辑  收藏  举报