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:
"((()))", "(()())", "(())()", "()(())", "()()()"
解决方案:
public class Solution {
public void unguarded_generate(List<String> result,String curr,int m,int n){
if(m==0&&n==0){
result.add(curr);
}
else
{
if(m!=0){
unguarded_generate(result,curr+"(",m-1,n);
}
if(m<n&&n!=0){
unguarded_generate(result,curr+")",m,n-1);
}
}
}
public List<String> generateParenthesis(int n) {
List<String> result=new ArrayList<String>();
if(n>0){
unguarded_generate(result,new String(),n,n);
}
return result;
}
}
本文介绍了一个生成有效括号组合的算法。给定一个正整数 n,该算法将生成所有可能的有效括号字符串,每种组合包含2n个括号。通过递归方式构建字符串,确保左括号数量始终不小于右括号数量。
260

被折叠的 条评论
为什么被折叠?



