本文共 1159 字,大约阅读时间需要 3 分钟。
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
For 2, it should place one "()" and add another one insert it but none tail it,
'(' f(1) ')' f(0)
or add none insert it but tail it by another one,
'(' f(0) ')' f(1)
Thus for n, we can insert f(i) and tail f(j) and i+j=n-1,
'(' f(i) ')' f(j)
public ListgenerateParenthesis(int n) { List result = new ArrayList (); if (n == 0) { result.add(""); } else { for (int i = n - 1; i >= 0; i--) { List insertSub = generateParenthesis(i); List tailSub = generateParenthesis(n - 1 - i); for (String insert : insertSub) { for (String tail : tailSub) { result.add("(" + insert + ")" + tail); } } } } return result;}
/********************************
* 本文来自博客 “李博Garvin“
* 转载请标明出处:
******************************************/