LeetCode-22-Generate Parentheses
Posted 无名路人甲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-22-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,同时右括号数量不能大于左括号。
vector<string> generateParenthesis(int n) { vector<string> results; generate(results, "", 0,0,n); return results; } void generate(vector<string>& results, string curr, int left, int right, int n){ if(curr.size() == 2*n){ results.push_back(curr); return; } string tmp = ""; if(left < n){ tmp = curr +"("; generate(results,tmp, left+1, right, n); } if(right < left){ tmp = curr + ")"; generate(results,tmp, left, right+1,n); } }
以上是关于LeetCode-22-Generate Parentheses的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode 22. Generate Parentheses
leetcode22. Generate Parentheses
leetcode 22 -- Generate Parentheses
[leetcode-22-Generate Parentheses]