标签:
题目:
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