三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

LeetCode 22. 括号生成

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); } } };
← 返回列表