括弧、カーターブルー数、すべての合法的なシーケンス小米面接

3359 ワード

実行結果は次のとおりです.
5  // 

1

()

1 1

2

(())

()()

2 2

2

(())

()()

2 2

3

((()))

(()())

(())()

()(())

()()()

3 5

4

(((())))

((()()))

((())())

((()))()

(()(()))

(()()())

(()())()

(())(())

(())()()

()((()))

()(()())

()(())()

()()(())

()()()()

4 14
import java.util.Scanner;





public class   {

    static int count=0;



    public static void main(String[] args) {

        // TODO Auto-generated method stub

        

        Scanner scn=new Scanner(System.in);

        

        int len=scn.nextInt();

        while(len-->0)

        {

             count=0;

            int temp=scn.nextInt();

            char a[]=new char[2*temp+1];

            fun(2*temp,0,0,a);

            System.out.println(temp+" "+count);

            

            

            

        }



    }

   

    private static void fun(int n,int r,int l,char c[]) {

        if(r>l||r+l>n) return;

        if(r+l==n&&r==n/2&&l==n/2)

        {

            for(int i=0;i<n;i++)

        {

            System.out.print(c[i]);

            

        }

            count++;

            System.out.println();

        }

        c[l+r]='(';

        fun(n,r,l+1,c);

        c[l+r]=')';

        fun(n,r+1,l,c);

        

    }



}