CCI 9.6 括号全部组合

来源:互联网 发布:特斯拉自动驾驶知乎 编辑:程序博客网 时间:2024/04/28 22:35

实现一种算法,打印n对括号的全部有效组合(即左右括号正确配对)。

示例

输入:3

输出:((())),(()()),(())(),()(()),()()()。

import java.util.ArrayList;public class CCI_9_6 {public static ArrayList<String> genePare(int n){ArrayList<String> result = new ArrayList<String>();if(n <= 0)return result;genePare(n, 0, 0, "", result);return result;}private static void genePare(int n, int leftCount, int rightCount, String str, ArrayList<String> result){//endif(rightCount == n){String temp = new String(str);result.add(temp);return;}//add leftif(leftCount < n){genePare(n, leftCount+1, rightCount, str+"(", result);}//add rightif(rightCount < leftCount){genePare(n, leftCount, rightCount+1, str+")", result);}}public static void main(String[] args) {int n = 3;ArrayList<String> result = genePare(n);for(String item : result){System.out.println(item);}}}


0 0