【问题描述】
由1对括号,可以组成一种合法括号序列:()。
由2对括号,可以组成两种合法括号序列:()()、(())。
由4对括号组成的合法括号序列一共有多少种?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
可以生出左枝叶的条件是:左括号剩余数量(严格)大于0;
可以生出右枝叶的条件是:左括号剩余数量(严格)小于右括号剩余数量。
import java.util.ArrayList;
public class Kuohao {
public static void count(int num) {
ArrayList<String> list=new ArrayList<String>();
String str=null;
dfs(str,num,num,list);
System.out.println(list.size());
}
public static void dfs(String curRes,int left,int right,ArrayList<String> list) {
if(left<0&&right<0) {
return;
}
if(left>0) {
dfs(curRes+"(",left-1,right,list);
}
if(right>left) {
dfs(curRes+")",left,right-1,list);
}
if(left==0&&right==0) {
list.add(curRes);
return;
}
}
public static void main(String[] args) {
count(3);
}
}