1. 程式人生 > >n對括號問題,(求n對括號的正確排列有多少)

n對括號問題,(求n對括號的正確排列有多少)

import java.util.ArrayList;

import java.util.List;

import java.util.*;

public class a_28 {

public static void main(String args[]) {

   Scanner reader = new Scanner(System.in);
   
   System.out.println("請輸入括號對數:");
   
   int n=reader.nextInt();
   
   int left=n,right=n;
   
   ArrayList<String> li=new ArrayList<String>();
   
   pattern("",left,right,li);
   
   for(String s:li)
   
	   System.out.println(s);

}

public static void pattern(String subset,int left,int right,ArrayList<String> re) {

   //成功的條件,找到了一種正確的形式
   
   if(left==0&&right==0)
   {
	   re.add(subset);
	   
   }
   //left<right subset+")"
   
   if(left<right)
   
   {
	   pattern(subset+")",left,right-1,re);
	   
   }
   
   //當left==right>0 subset+"("
   
   if(left>0)
   
	   pattern(subset+"(",left-1,right,re);