問題: 打印出所有N對合理的括號組合。
思路: 用遞歸函數生成括號組合,參數爲左右括號餘量和當前位置,以及已生成的組合。結束條件爲餘量爲0,否則餘量減一繼續調用。
java代碼:
public void printPar(int N){
char[] str=new char[2*N];
printPar(N,N,str,0);
}
private void printPar(int leftPar,int rightPar,char[] str,int count){
if(leftPar<0||r<leftPar)
return;
if(leftPar==0&&rightPar==0)
System.out.println(str);
else{
if(leftPar>0){
str[count]='(';
printPar(leftPar-1,rightPar,str,count+1);
}
if(rightPar>l){
str[count]=')';
printPar(leftPar,rightPar-1,str,count+1);
}
}
}