[LeetCode22]Generate Parentheses
来源:互联网 发布:网络摄像头相关知识 编辑:程序博客网 时间:2024/06/09 08:00
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
recursion, when left parentheses number smaller than n, add it. when right parentheses smaller than left, add it
Java
public class GenerateParentheses {ArrayList<String> res;StringBuffer pare;public List<String> generateParenthesis(int n) {res = new ArrayList<>();pare = new StringBuffer();parenethesis(n, 0, 0, 0);return res; }public void parenethesis(int n, int leftNum, int rightNum, int level){if(2*n == level){res.add(pare.toString());return;}if(leftNum<n){pare.append('(');parenethesis(n, leftNum+1, rightNum, level+1);pare.deleteCharAt(level);}if(rightNum<leftNum){pare.append(')');parenethesis(n, leftNum, rightNum+1, level+1);pare.deleteCharAt(level);}}}c++
void CombinationPar(vector<string>& result, string& sample, int deep, int n, int leftNum, int rightNum) { if(deep == 2*n) { result.push_back(sample); return; } if(leftNum<n) { sample.push_back('('); CombinationPar(result, sample, deep+1, n, leftNum+1, rightNum); sample.resize(sample.size()-1); } if(rightNum<leftNum) { sample.push_back(')'); CombinationPar(result, sample, deep+1, n, leftNum, rightNum+1); sample.resize(sample.size()-1); } } vector<string> generateParenthesis(int n) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<string> result; string sample; if(n!= 0) CombinationPar(result, sample, 0, n, 0, 0); return result; }
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
- cocos2d-x andriod Box2D.h 找不到,"Box2D.h" 改成 <Box2D/Box2D.h> 即可
- 【c++基础】关于继承关系中构造函数的粗略理解
- 治疗口腔溃疡
- 持续集成(CI)
- MFC Unicode编码实现文本复制到剪贴板
- [LeetCode22]Generate Parentheses
- 黑马程序员——分类
- [C/C++]_[简单例子看模板template的特性]
- SSH framework works
- linux 下大量TIME_WAIT 的处理
- 黑马程序员_java高新技术-jdk1.5新特性
- 【Hibernate步步为营】--hql连接查询及外置命名查询
- MongoDB -- 查询
- python微信九django验证和消息回复