题解 | #括号生成#

括号生成

http://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca

来个简单点的写法,主要就是考虑什么时候放左右括号的问题

class Solution {
public:
    /**
     * 
     * @param n int整型 
     * @return string字符串vector
     */
    void dfs(string s, int left, int n, vector<string> &ans){
        if(s.size() == 2*n){
            ans.push_back(s);
            return ;
        }
        if(left < n){
            dfs(s+"(", left+1, n, ans);
        }
        if(left && left*2 > s.size()){
            dfs(s+")", left, n, ans);
        }
        return ;
    }
    vector<string> generateParenthesis(int n) {
        // write code here
        vector<string> ans;
        dfs("(", 1, n, ans);
        return ans;
    }
};
全部评论

相关推荐

老方子:英语等级cet写错了吧
点赞 评论 收藏
分享
02-15 15:29
青岛大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务