[Leetcode] Generate Parenthesis
2014-10-05 06:45
239 查看
题目:
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:
思路:递归列举所有可能,同时分别记录( 和 ) 的数量。
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
思路:递归列举所有可能,同时分别记录( 和 ) 的数量。
class Solution { public: string trace; void generate_parenthesis_helper(int sum, int left_sum, int right_sum, vector<string>& result) { if (left_sum == sum && right_sum == sum) { result.push_back(trace); return; } if (left_sum < sum) { //as long as left_sum < sum, always safe to generate '(' trace.push_back('('); generate_parenthesis_helper(sum, left_sum + 1, right_sum, result); trace.pop_back(); } if (right_sum < left_sum) { //as long as right_sum < left_sum, we can generate ')' trace.push_back(')'); generate_parenthesis_helper(sum, left_sum, right_sum + 1, result); trace.pop_back(); } } vector<string> generateParenthesis(int n) { vector<string> result; generate_parenthesis_helper(n, 0, 0, result); return result; } };
相关文章推荐
- 【LeetCode】Generate Parenthesis - Medium
- generateParenthesis——leetcode
- Leetcode: Generate Parenthesis
- 【leetcode】 generate parenthesis !!
- leetcode Generate Parenthesis
- Generate parenthesis
- Leetcode 20 Valid Parenthesis
- LeetCode 301: Remove Invalid Parenthesis
- LeetCode-20 valid parenthesis
- LeetCode:Generating Parenthesis
- LeetCode - Valid Parenthesis
- [LeetCode]Generate Parentheses
- [leetcode][回溯] Generate Parentheses
- LeetCode 22 Generate Parentheses 卡特兰数问题,有待进一步学习
- CSU 1809 Parenthesis
- 暴力_______Rikka with Parenthesis II( hdu 5831 2016多校第八场)
- (HDU 5831)2016 Multi-University Training Contest 8 Rikka with Parenthesis II(水?)
- leetcode 022 —— Generate Parentheses
- [LeetCode] Generate Parentheses
- [Leetcode] generate parentheses 生成括号