22. Generate Parentheses
来源:互联网 发布:ss网络加速 编辑:程序博客网 时间:2024/06/06 16:36
题目
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:
[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]
思路
本题是典型的卡特兰数的应用,与之类似的还有出栈次序,详情请戳卡特兰数。
本题具体的解题思路,是这样的,要求括号的组合数,那么就要找到卡特兰数的性质,总结如下,对于2n(此题测试n=3)个括号,在某个时间点,必定是左括号书大于右括号数,而且初始括号必定是左括号。那么用递归的思想来求解。递归的临界条件是:左括号剩余数与右括号剩余数同时为0。
代码
class Solution {public: vector<string> generateParenthesis(int n) { string str = "("; vector<string> res; generate_parentheses(n-1,n,str,res); return res; } void generate_parentheses(int left,int right,string s,vector<string>& res){ if(left==0&&right==0) res.push_back(s); if(left>0) generate_parentheses(left-1,right,s+'(',res); if(right>0&&right>left) generate_parentheses(left,right-1,s+')',res); }};
阅读全文
0 0
- [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
- 22. Generate Parentheses
- 22. Generate Parentheses
- 22. Generate Parentheses LeetCode
- 22. Generate Parentheses
- leetcode 22. Generate Parentheses
- 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- 22. Generate Parentheses
- 查找总结
- 【作业】《构建之法》第一章
- javaSE之接口理解
- Android编程生成验证码图片
- 数据库仓库与数据挖掘
- 22. Generate Parentheses
- HDU 6201
- 盘点:恢复删除了的聊天记录方法汇总
- 用了这款自动化表格制作软件,跟手工表格说再见
- 图像识别的深度学习
- ExtJS基本点总结
- 谷歌 火狐 主页被篡改,修改文件名解决
- C++修改图片像素大小,求梯度,创建文件夹并读取文件数据,
- 约束优化方法之拉格朗日乘子法与KKT条件