数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例 1:
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:class Solution { public: vector<string>ans; string str; void backtracK(vector<string>&ans,string&str,int n,int left,int right) { if(str.size()==2*n){ ans.push_back(str); return; } if(left<n){ str+='('; backtracK(ans,str,n,left+1,right); str.pop_back(); } if(right<left){ str+=')'; backtracK(ans,str,n,left,right+1); str.pop_back(); } } vector<string> generateParenthesis(int n) { int left=0,right=0; backtracK(ans,str,n,left,right); return ans; } };
输出:["()"]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/generate-parentheses
有效括号的生成
最新推荐文章于 2023-07-05 21:46:42 发布