22. Generate Parentheses 题解
来源:互联网 发布:吾爱免流流控源码 编辑:程序博客网 时间:2024/06/05 11:18
22. Generate Parentheses
题目描述:
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
题目链接:22. Generate Parentheses
算法描述:
由题意知,给出一个数 n,根据 n 返回一个包含 “正确” 的括号组合的 vector ,如当 n=1时:[ () ];当 n=2 时:[ ()(), (()) ];当 n=3 时:[ ((())), (()()), (())(), ()(()), ()()() ]……
我们利用递归的思想,需要记录填入左边和右边的括号数,如果左边括号数小于 n,填入“(”,进如递归函数,完成左边的括号填充后,如果右边括号数小于左边括号数,填入“)”,并进入递归函数,结束的条件是右边括号数等于 n。
用别人的一张图来表示这个思想 (链接:点击打开链接 )
代码:
class Solution {public: vector<string> ans; vector<string> generateParenthesis(int n) { func(0, 0, "", n); return ans; } void func(int l, int r, string s, int n){ if(r==n){ ans.push_back(s); } if(l<n){ func(l+1, r, s+'(', n); } if(r<l){ func(l, r+1, s+')', n); } }};
0 0
- 22. Generate Parentheses 题解
- 22. Generate Parentheses题解
- LeetCode 题解(Week15):22. Generate Parentheses
- LeetCode题解:Generate Parentheses
- LeetCode题解:Generate Parentheses
- [LeetCode]Generate Parentheses题解
- LeetCode 题解(179): Generate Parentheses
- LeetCode 22. Generate Parentheses 题解 —— Java
- [LeetCode]22.Generate Parentheses
- LeetCode --- 22. Generate Parentheses
- LeetCode 22.Generate Parentheses
- [Leetcode] 22. Generate Parentheses
- 【LeetCode】22.Generate Parentheses
- 22. Generate Parentheses
- [leetcode] 22.Generate Parentheses
- 【leetcode】22. Generate Parentheses
- Leetcode-22.Generate Parentheses
- [leetcode] 22. Generate Parentheses
- Podfile 简单使用
- 文章标题
- zkw线段树
- V8是什么?
- PAT L3-002. 堆栈
- 22. Generate Parentheses 题解
- 条形码缺陷分割
- 【左偏堆】bzoj1455罗马游戏
- Polycarpus' Dice CodeForces
- java内置对象之request
- CCNA学习日记-04-PacketTracer基础命令
- ubuntu 16.04启用root用户方法
- 在构造器内部调用多态方法
- 尺度不变特征变换SIFT