题解 | #括号生成#

括号生成

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;
    }
};
全部评论

相关推荐

07-24 13:43
门头沟学院 Java
longerluck...:我猜说的是“你真**是个天才”
投递美团等公司10个岗位
点赞 评论 收藏
分享
程序员小白条:主要没亮点,项目也是网上的,平平无奇,那只能海投了,奖项总得有一些,然后就是现在最好是前后端都会,自己能做项目并且运维的,要么找星球项目改改,要么找个开源项目改改,自己能拓展功能才是主要的,跟做效率很低很低
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务