Generate Parentheses

来源:互联网 发布:神童vb第二章五 编辑:程序博客网 时间:2024/06/06 03:02

题目描述

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:
“((()))”, “(()())”, “(())()”, “()(())”, “()()()”

题目解答

解题思路

这是一个递归问题,要找到递归的规律, n个”(” ,n 个”)”分配
当left > 0时,填写”(”
当right > left时, 填写”)”

代码实现

public class Solution {    /**     * n个左括号 , n个右括号     * 先放置左括号,然后再放置右括号     * 递归的解决     */    public List<String> generateParenthesis(int n){        List<String> ret = new ArrayList<>();        parenthesesByRegression(ret, n, n, "");        return ret;    }    public void parenthesesByRegression(List<String> ret, int left, int right, String temp){        if(left == 0 && right ==0)            ret.add(temp);        if(left > 0)            parenthesesByRegression(ret, left-1, right, temp+"(");        if(right > left)            parenthesesByRegression(ret, left, right-1, temp+")");    }}
0 0
原创粉丝点击