Leetcode22: Generate Parentheses
来源:互联网 发布:泯然众人 知乎 编辑:程序博客网 时间:2024/05/29 08:29
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:
[ "((()))", "(()())", "(())()", "()(())", "()()()"]题意:
给出N对括号,求正确的括号排列的组合。如示例,每个左括号一定在右边有一个右括号与之唯一对应。
思路:
递归的思想。将剩余的左括号数和右括号数记为 l r, 要是l == r ==0 ,说明已经得到了符合要求的string,则压入vector;要是左括号数量不等于0,那么在string中加入一个左括号,再调用该函数递归;要是右括号数量不等于0,并且不大于左括号数量,则在string中加入一个右括号并且递归;如果右括号数目小于左括号数目,则该种情况下是无法形成满足题目的string的。
代码:
class Solution {public: void solve(vector<string> &v, string s, int l, int r){ if(r<l) return ; if(l==0 && r==0) v.push_back(s); if(l>0) solve(v, s+"(", l-1, r); if(r>0) solve(v, s+")", l, r-1); } vector<string> generateParenthesis(int n) { vector<string> res; solve(res, "", n, n); return res; }
0 0
- [LeetCode22]Generate Parentheses
- [Java]LeetCode22 Generate Parentheses
- LeetCode22:Generate Parentheses
- LeetCode22. Generate Parentheses
- LeetCode22. Generate Parentheses
- LeetCode22. Generate Parentheses
- Leetcode22 Generate Parentheses
- LeetCode22. Generate Parentheses
- Leetcode22: Generate Parentheses
- leetcode22:Generate Parentheses
- LeetCode22.Generate Parentheses
- LeetCode22 Generate Parentheses 括号生成
- leetcode22. Generate Parentheses 栈和dfs的运用
- Leetcode22. Generate Parentheses(生成有效的括号组合)
- LeetCode22——Generate Parentheses(给定n对括号,然后看有多少正确的括号组合)
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- TCO2016乱做
- Android EditText常用属性功能汇总
- java多态
- SendMessage()
- React—Native开发之 Could not connect to development server(Android)解决方法
- Leetcode22: Generate Parentheses
- UVa1591
- 【Spring从入门到精通】 (五)加载Bean
- linux系统安装
- java抽象
- 2017Android校招心得体会
- Android中EditText如何去除边框添加下划线
- 小话设计模式(番外三)有限状态机模式
- iOS必备-拿来练手就够了