【LeetCode从零单排】No22.Generate Parentheses
題目
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 List<String> generateParenthesis(int n) {List<String> result = new ArrayList<String>();if (n == 0) {result.add("");} else {for (int i = n - 1; i >= 0; i--) {List<String> insertSub = generateParenthesis(i);List<String> tailSub = generateParenthesis(n - 1 - i);for (String insert : insertSub) {for (String tail : tailSub) {result.add("(" + insert + ")" + tail);}}}}return result; }/********************************
* 本文來自博客 ?“李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
總結
以上是生活随笔為你收集整理的【LeetCode从零单排】No22.Generate Parentheses的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【分布式计算】MapReduce的替代者
- 下一篇: 【LeetCode从零单排】No198.