蓝桥杯Java合法括号序列详解
合法括号序列
题⽬描述
本题为填空题,只需要算出结果后,在代码中使⽤输出语句将所填结果输出即可。
由 1 对括号,可以组成⼀种合法括号序列:()。
由 2 对括号,可以组成两种合法括号序列:()()、(())。
由 4 对括号组成的合法括号序列⼀共有多少种?
答案:14
可以笔算
( ) ( ) ( ) ( ) 1
(( )) ( ) ( ) 3
(( )) (( )) 1
((( ))) ( ) 2
(( )( )) ( ) 2
( ( )( )( ) ) 1
( (( )) ( ) ) 2
((( ) ( ))) 1
( ( ( ( ) ) ) ) 1
TA有⼀个规律那就是,左括号⼀定 >= 右括号
import java.util.Scanner;
public class 合法括号序列{
static int n=0;
static int sum=0;
static void dfs(int left,int right){ //left代表左括号的数量,right右括号数量
//左括号⼀定>=右⼝号,所有右括号结束的时候才是真正结束
if(right>n){
sum++;
return;
}
if(left<=n) //当左括号的数量超过n时,我们就不在增加左括号
generateddfs(left+1,right);
if(left>right){ //只有左括号⼤于右括号的时候,我们才增加右括号的数量
dfs(left,right+1);
}
}
public static void main(String[] args){
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
Int();
sum=0;
dfs(1,1);
System.out.println(sum);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论