标签:
题目:
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
import java.util.ArrayList;
import java.util.List;
public class GenerateParentheses {
//规则:只有当右括号剩余个数多于左括号剩余个数时,才可以放置右括号,递归求解
public List<String> generateParenthesis(int n) {
List<String> ret = new ArrayList<>();
generate(ret, "", n, n);
return ret;
}
public void generate(List<String> ret, String temp, int left, int right){
if(left==0 && right==0){
ret.add(temp);
}
if(left > 0){
generate(ret, temp+"(", left-1, right);
}
if(right > left){
generate(ret, temp+")", left, right-1);
}
}
}LeetCode | #22 Generate Parentheses
标签:
原文地址:http://blog.csdn.net/allhaillouis/article/details/43118903