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 {
List<String> list = new ArrayList<>();
StringBuilder sb = new StringBuilder();
public List<String> generateParenthesis(int n) {
if(n<=0)
return list;
if (n==1){
list.add("()");
return list;
}
return parenthesis(n,0);
}
public List<String> parenthesis(int n,int flag){
if(n==0&&flag==0){
list.add(new String(sb+""));
return list;
}
if(n!=0){
sb.append("(");
parenthesis(n-1,flag+1);
sb.delete(sb.length()-1,sb.length());
}
if(flag!=0){
sb.append(")");
parenthesis(n,flag-1);
sb.delete(sb.length()-1,sb.length());
}
return list;
}
}
leetcode 22. Generate Parentheses
原文:https://www.cnblogs.com/clnsx/p/12332679.html