LeetCode 22. 括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的括号组合。

示例 1:

复制代码
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

复制代码
输入:n = 1
输出:["()"]

提示:

  • 1 <= n <= 8
cpp 复制代码
class Solution {
public:
    
    vector<string> generateParenthesis(int n) {
        vector<string> ans;
        backtrack(ans,"",0,0,n);
        return ans;
    }
    void backtrack(vector<string>& ans,string current,int open,int close,int n){
        if(current.size()==2*n)
        {
            ans.push_back(current);
            return;
        }
        if(open<n)
        {
            backtrack(ans,current+'(',open+1,close,n);
        }
        if(close<open)
        {
            backtrack(ans,current+')',open,close+1,n);
        }
    }
};
相关推荐
win水1 小时前
八、命令行参数和环境变量
linux·环境变量·命令行参数
( •̀∀•́ )9201 小时前
Linux 下部署 `social-auto-upload` 遇到的问题及完整解决方案
linux·运维·服务器
高锰酸钾_1 小时前
计算机网络-链路层-差错控制
服务器·网络·计算机网络
代码中介商1 小时前
Libevent实战:高性能网络编程指南
linux·运维·网络
happytree0011 小时前
linux0.11 - setup.s第一阶段(获取系统信息)
linux
怀旧,1 小时前
【Linux网络编程】2. Socket编程 UDP
linux·网络·udp
徒劳爱学仙2 小时前
全志 V821 韦东山 Avaota-F1-B ubuntu开发环境搭建
linux·运维·ubuntu
HelloWorld工程师2 小时前
SSL证书在哪里可以免费且快速申请?
服务器·网络协议·ssl
z200509302 小时前
【linux学习】linux的基本指令
linux·学习