import java.util.Scanner;
public class hello {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
int n = scan.nextInt();
_rec(n, 0, 0, "");
}
}
static void _rec(int n, int l, int r, String BS){
if(l<r){
return;
}
if((l==r)&&(l==n)){
System.out.printf("%s\n", BS);
return;
}
String str="";
if(l<n){
str = BS+"(";
_rec(n, l+1, r, str);
}
if(r<n){
str = BS+")";
_rec(n, l, r+1, str);
}
}
}
照討論的答案實做JAVA版 但是仍然TLE
雖然我沒學過JAVA,但是這一題大部分時間其實都花在輸出上面(可以試著把輸出comment掉去計算時間就知道了),
而討論區上的演算法應該是很簡潔很快速的了,所以在程式碼沒問題的前提下,我猜測是不是因為JAVA的輸出不夠快
導致TLE,畢竟JAVA和C/C++相較起來是屬較高階的語言。
確實 將 println 拿掉 速度就可以,
但是查了很多方法 去做 output 效果都很慢,不知道之前 JAVA 可以 AC 的是用什麼 output 方式
確實 將 println 拿掉 速度就可以,
但是查了很多方法 去做 output 效果都很慢,不知道之前 JAVA 可以 AC 的是用什麼 output 方式
用 StringBuilder 把結果存起來,最後再一次輸出。
謝謝, 已成功