首页 > 代码库 > [Leetcode] 22- Generate Parentheses
[Leetcode] 22- Generate Parentheses
原题链接:https://oj.leetcode.com/problemset/algorithms/
这里用递归的方法实现。递归函数签名为void generate(int left, int right, int n, string prev)
1. left,right分别为当前左右括号的个数,prev缓存之前的临时结果
2. left小于n的时候,可以一直加入左括号
3. right必须小于left的个数的时候,才可以加入
4. 当right的个数等于n的时候,说明当前生成结束
class Solution { private: vector<string> res; public: vector<string> generateParenthesis(int n) { generate(0, 0, n, ""); return res; } void generate(int left, int right, int n, string prev) { if (right == n) { res.push_back(prev); } if (left < n) { prev.push_back('('); generate(left + 1, right, n, prev); prev.pop_back(); } if (left > right) { prev.push_back(')'); generate(left, right + 1, n, prev); } } };
[Leetcode] 22- Generate Parentheses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。