LeetCode 22. 括号生成

📅 2026/7/8 21:01:24 👁️ 阅读次数 📝 编程学习
LeetCode 22. 括号生成

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

示例 1:

输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1输出:["()"]

提示:

  • 1 <= n <= 8
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); } } };