leetcode 22. Generate Parentheses
来源:互联网 发布:怎么关闭淘宝客推广 编辑:程序博客网 时间:2024/05/01 04:57
1.题目
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
2.思路
找到所有符合规则的括号排序方法。那么,左右括号的出现有什么规则呢?
1. 最后左右括号肯定是相等的,并且等于n
2. 从左向右数,右括号出现的次数一定不能比左括号多(如果多了代表表达式有误)
由此,可以使用递归,代码如下:
class Solution {public: // left 和 right 分别代表了当前出现的左右括号的数目 vector<string> ans; void helper(int left,int right,int n,string ret) { if(left == n && right == n) ans.push_back(ret); if(left != n) helper(left+1,right,n,ret+"("); if(left > right && right != n) helper(left,right+1,n,ret+")"); } vector<string> generateParenthesis(int n) { helper(0,0,n,""); return ans; }};
0 0
- [LeetCode]22.Generate Parentheses
- LeetCode --- 22. Generate Parentheses
- LeetCode 22.Generate Parentheses
- [Leetcode] 22. Generate Parentheses
- 【LeetCode】22.Generate Parentheses
- [leetcode] 22.Generate Parentheses
- 【leetcode】22. Generate Parentheses
- Leetcode-22.Generate Parentheses
- [leetcode] 22. Generate Parentheses
- 22. Generate Parentheses LeetCode
- leetcode 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- leetcode 22. Generate Parentheses
- leetcode 22. Generate Parentheses
- LeetCode 22. Generate Parentheses
- [LeetCode]22. Generate Parentheses
- LeetCode *** 22. Generate Parentheses
- LeetCode 22. Generate Parentheses
- Cmake系列:如何使用CMake编译自己项目
- 【计算机视觉】积分图和积分直方图
- 单片机学习步骤工程师的经验分享
- PAT 乙级 1028.人口普查
- LeetCode#102. Binary Tree Level Order Traversal My Submissions Question
- leetcode 22. Generate Parentheses
- android之截屏(包括截取scrollview与listview的)
- cocos2d-x 精灵 Sprite
- 3月24日学习笔记(活动的启动方式)
- Uva 10891 dp
- 命题范式(propositional normal form)
- 【BZOJ2659】算不出的算式,打表找规律
- C#——判断成绩是否通过
- HDU 1548 A strange lift