Sağ küme ayracı, küme ayraçlarının ve noktalı virgüllerin aa dosyasının sağ tarafındaki tek bir noktaya hizalandığı, kod tutturma stilidir.
Genel olarak, bu, birkaç nedenden dolayı, kötü bir uygulama olarak kabul edilir.
Meydan okuma
Herhangi bir yöntemde çok satırlı bir dize alın ve bu küme ayracı stilini Sağ Ayraca'ya dönüştürün.
Bu zorluk için, yalnızca Java kodu üzerinde çalışması gerekir, ancak teorik olarak Parantez ve Noktalı virgül kullanan herhangi bir kod üzerinde çalışması gerekir.
Tüm {};
karakterleri arka arkaya, aralarında herhangi bir miktarda boşluk olacak şekilde almalısınız . ÖRNEĞİN. }}
,, ; }
}\n\t\t}
ve onları beyaz boşluk kullanarak dosyanın sağ tarafına hizalayın.
Örneğin:
a {
b;
{c
olmalı
a {
b ;{
c
Veya, daha soyut olarak, tüm boşlukları tüm {};
karakterlerin solundan sağa doğru itin .
Satırların girintisi aksi takdirde korunmalıdır {};
Karakterlerin hareketinden sonra sadece boşluk içeren çizgiler isteğe bağlı olarak kaldırılabilir.
Örneğin:
a{
b{
c;
}
}
d;
Ya olabilir
a {
b {
c;}}
d ;
veya
a {
b {
c;}}
d ;
Sağa itti, tüm {};
karakterlerin en uzun çizgiden kısa olmayan bir noktaya hizalanması anlamına gelir . Bundan sonra herhangi bir boşluk miktarı kabul edilebilir.
Yani aşağıdakilerin tümü kabul edilebilir:
a {
bc;
a {
bc ;
a {
bc ;
vb...
Herhangi bir koddaki satırlar, {};
diğer boşluk olmayan karakterler arasındaki karakterleri içerebilir , bu durumun ele alınması gerekli değildir, ancak eğer eğilirseniz onları yerinde bırakmanız gerekir. Satırlar ayrıca hiçbir {};
karakter içermeyebilir ve bu doğru kullanılmalıdır. Aşağıda gösterildiği gibi.
a {
b ;
c
d }
Kod İncelemenin yaptığımız korkunç şeyleri görmesini istemediğimizden , kodunuzu olabildiğince küçük hale getirmeniz gerekir.
Örnekler / Testcases
Genel Java
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
olur ...
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!") ;}}
Resmin kendisi
public class Permuter{
private static void permute(int n, char[] a){
if (n == 0){
System.out.println(String.valueOf(a));
}else{
for (int i=0; i<= n; i++){
permute(n-1, a);
swap(a, n % 2 == 0 ? i : 0, n);
}
}
}
private static void swap(char[] a, int i, int j){
char saved = a[i];
a[i] = a[j];
a[j] = saved;
}
}
olur ...
public class Permuter {
private static void permute(int n, char[] a) {
if (n == 0) {
System.out.println(String.valueOf(a)) ;}
else {
for (int i=0; i<= n; i++) {
permute(n-1, a) ;
swap(a, n % 2 == 0 ? i : 0, n) ;}}}
private static void swap(char[] a, int i, int j) {
char saved = a[i] ;
a[i] = a[j] ;
a[j] = saved ;}}
Çok Mükemmel Değil Genel Python
Kontrast için
def Main():
print("Hello, World!");
Main();
olur ...
def Main():
print("Hello, World!") ;
Main() ;
notlar
- Standart Loopholes uygulanır
- Standart GÇ geçerlidir
- Bu kod golf , bayt cinsinden en kısa program kazanıyor!
- Sağ Brace tarzında programlama ile ilgili zararlardan sorumlu değilim
- İyi eğlenceler!
Notları Düzenle
Mücadelenin ayrıntılarını yeniden değerlendirdim, Umarım kimsenin kurallara bakışını ihlal etmedim, sizi temin ederim ki istenmeyen. Bu çok daha net ve daha az kendi kendine çelişen bir özellik olmalıdır.
;{}
onlar ayrı satırlarda iseniz topladı karakterler (örneğin sadece açık değil, kurallar ve bir çizgi oluşuyorsa aslında \t}
anlamına geleceğini girinti koruyarak değil hareketli }
sonuna kadar önceki hattın)
int a=0;System.out.println(a);