leetcode 22:Generate Parentheses(15-10-9)
来源:互联网 发布:股票虚拟盘软件 编辑:程序博客网 时间:2024/05/01 21:51
题目:
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
我们可以用递归来解,left表示剩下的左括号数,right表示剩下的右括号数,那么当left==0且right==0时,说明左右括号已经全部写完,可以将string插入到vector。
如果left>0就往string中添加一个'(',如果right>0就往string中添加一个')'。
时间复杂度:O(2^n)
实现:
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> res; addingpar(res, "", n, 0); return res; } void addingpar(vector<string> &v, string str, int n, int m){ if(n==0 && m==0) { v.push_back(str); return; } if(m > 0){ addingpar(v, str+")", n, m-1); } if(n > 0){ addingpar(v, str+"(", n-1, m+1); } }};
补充:其实也可以理解为回溯的思想,我们构建的状态空间树如下:
0 0
- leetcode 22:Generate Parentheses(15-10-9)
- 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
- Generate Parentheses - LeetCode 22
- leetcode 22 -- Generate Parentheses
- leetcode-22Generate Parentheses
- leetcode 22: Generate Parentheses
- Leetcode#22 Generate Parentheses
- LeetCode(22) Generate Parentheses
- Leetcode 22 Generate Parentheses
- LeetCode #22 Generate Parentheses
- Android:Drawerlayout中back键直接退出的问题
- Xcode快捷键
- POJ3080 Blue Jeans(kmp & 暴力)
- Gson解析工具类----解决某些手机Object两个属性引起的异常
- Unity协程(Coroutine)原理深入剖析
- leetcode 22:Generate Parentheses(15-10-9)
- 1011. World Cup Betting
- 【动态规划】0-1背包问题
- Ubuntu14.04中fcitx-rime中州韵输入法安装设置
- VC从文件全路径中获取文件名和扩展名方法
- 类装载器体系结构
- 操作系统——pv操作示例
- MYSQL -- case when用法
- 编写测试用例时用到黑盒测试的方法