[LeetCode] Generate Parentheses
来源:互联网 发布:java 连接hiveserver2 编辑:程序博客网 时间:2024/06/06 02:52
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
解题思路:
我第一感觉就是回溯,通过递归实现。但是递归的条件迟迟没有想出。可以这么做,分别记录当前字符串的(和)个数,若(个数小于n,当前字符串加上(,递归调用下一层。若)小于(的个数,当前字符加上),递归调用下一层。若(和)的数目都等于n,停止递归调用,将s加入结果集。代码如下:
class Solution {public: vector<string> generateParenthesis(int n) { vector<string> result; if(n<1){ return result; } getParenthesis(n, 0, 0, "", result); return result; } void getParenthesis(int n, int leftNumber, int rightNumber, string s, vector<string>& result){ if(leftNumber==n&&rightNumber==n){ result.push_back(s); return; } if(leftNumber<n){ getParenthesis(n, leftNumber+1, rightNumber, s+"(", result); } if(rightNumber<leftNumber){ getParenthesis(n, leftNumber, rightNumber+1, s+")", result); } }};
0 0
- 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
- [LeetCode]Generate Parentheses
- Leetcode Generate Parentheses
- LeetCode-Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode - Generate Parentheses
- LeetCode 22: Generate Parentheses
- LeetCode: Generate Parentheses
- Leetcode: Generate Parentheses
- 【leetcode】Generate Parentheses
- Leetcode: Generate Parentheses
- awk关系运算符
- uva-1594 - Ducci Sequence c++, stl练习,map
- tomcat The APR based Apache Tomcat Native library which allows ...java.library...异常
- 关于链表中头指针和头结点的理解
- 冒泡法排序
- [LeetCode] Generate Parentheses
- Android学习 - 降低耗电总结
- C Primer Plus 第五章 程序清单and习题——2015.4.21
- 饿了么饱腹之路:一个都不能少?
- Struts1.x系列教程(11):Validator验证框架高级应用
- oracle实例内存(SGA和PGA)调整
- VirtualBox网络连接模式区别比较
- vs2010和openGL问题
- 子数组的最大和[算法]