题解 | #牛圈围栏问题#

牛圈围栏问题

https://www.nowcoder.com/practice/4e3bb97bbc2b4382a745abe953f44aee

#include <vector>
#include <string>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return string字符串vector
     */
    vector<string> ans;
    // left,right分别表示左右括号的个数
    void dfs(int n, string str, int left, int right)
    {
        if(left==n && right==n)
        {
            ans.emplace_back(str);
            return;
        }

        if(right>left || left>n || right>n)
            return;

        // 前往不能写成dfs(n,str+="(",left+1,right);
        dfs(n,str+"(",left+1,right);
        
        dfs(n,str+")",left,right+1);
    }


    vector<string> generateParenthesis(int n) {
        // write code here
        string str = "";
        dfs(n,str,0,0);
        return ans;
    }
};

全部评论

相关推荐

面向对象的火龙果很爱...:去吃一顿炸鸡就走
点赞 评论 收藏
分享
找到实习了&nbsp;给了150一天&nbsp;但是说是低代码&nbsp;值得去吗
码农索隆:是在没实习,可去,待个一两周,不行就润呗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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