[LeetCode]Generate Parentheses题解
来源:互联网 发布:c语言乘方 编辑:程序博客网 时间:2024/06/03 19:26
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:
[ “((()))”, “(()())”, “(())()”, “()(())”, “()()()”]
这道题的答案是很多种左右括号组合成的一个set,因为情况有很多种,所以常规的算法比较麻烦,所以采取递归的方法解决。算法的复杂度是O(n^2).
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> re; recursion(re,n,0,""); return re; } void recursion(vector<string> &re,int l,int r,string str){ if(l == 0 && r == 0){ re.push_back(str); } if(r>0) recursion(re,l,r-1,str+")"); if(l>0) recursion(re,l-1,r+1,str+"(");//用掉一个左括号(l-1),可用的有括号就多了一个(r+1) }};
举例n>3的时候,递归的过程如下:
"(" / \ "((" "()" / \ / \ "(((" "(()" "()(" ** //星号处,没有可用的右括号 ...
阅读全文
0 0
- LeetCode题解:Generate Parentheses
- LeetCode题解:Generate Parentheses
- [LeetCode]Generate Parentheses题解
- LeetCode 题解(179): Generate Parentheses
- LeetCode题解——Generate Parentheses
- 《LeetBook》LeetCode题解(22): Generate Parentheses[M]
- LeetCode 题解(Week15):22. Generate Parentheses
- 22. Generate Parentheses 题解
- 22. Generate Parentheses题解
- LeetCode 22. Generate Parentheses 题解 —— Java
- LeetCode: Generate Parentheses
- LeetCode: Generate Parentheses
- [Leetcode] Generate Parentheses
- leetcode 51: Generate Parentheses
- [LeetCode] Generate Parentheses
- Leetcode: Generate Parentheses
- LeetCode Generate Parentheses
- 【leetcode】Generate Parentheses
- Java常用算法之直接插入排序法
- 高级UI特效仿直播点赞效果—一个优美炫酷的点赞动画
- 20170911~0917周总结
- LeetCode 237. Delete Node in a Linked List
- C++中的static关键字
- [LeetCode]Generate Parentheses题解
- 线程的五大状态
- 轻院1075 聚餐人数统计
- Java SE的多态、接口
- 欧几里得算法
- python 爬多页贴吧的图片
- Guava 介绍
- vue2 in typescript2 (4)
- 夜间模式1