括弧、カーターブルー数、すべての合法的なシーケンス小米面接
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);
}
}