รั้งมือขวาคือรูปแบบของการใส่รหัสในการจัดฟันแบบหยักและอัฒภาคให้อยู่ในตำแหน่งเดียวที่ด้านขวาของไฟล์ aa
โดยทั่วไปถือว่าเป็นการปฏิบัติที่ไม่ดีด้วยเหตุผลหลายประการ
ความท้าทาย
ใช้สตริงหลายบรรทัดผ่านวิธีการใด ๆ และแปลงรูปแบบการรั้งเป็น Right Hand Brace
สำหรับความท้าทายนี้คุณจะต้องใช้มันเพื่อทำงานกับโค้ด Java เท่านั้นอย่างไรก็ตามในทางทฤษฎีมันควรทำงานกับโค้ดใด ๆ ที่ใช้เครื่องมือจัดฟันและเครื่องหมายอัฒภาค
คุณต้องคว้า{};
ตัวละครทั้งหมดในแถวด้วยช่องว่างใด ๆ ระหว่างพวกเขา เช่น. }}
,, ; }
}\n\t\t}
และจัดเรียงมันทางด้านขวาของไฟล์ผ่านการใช้ช่องว่าง
ตัวอย่างเช่น:
a {
b;
{c
ควรกลายเป็น
a {
b ;{
c
หรืออย่างเป็นนามธรรมมากขึ้นผลักช่องว่างใด ๆ และทั้งหมดจากด้านซ้ายของ{};
ตัวละครทั้งหมดไปทางขวา
ควรเยื้องบรรทัด บรรทัดที่มีช่องว่างหลังจากการเคลื่อนไหวของ{};
ตัวละครอาจถูกลบออก
ตัวอย่างเช่น:
a{
b{
c;
}
}
d;
อาจกลายเป็นอย่างใดอย่างหนึ่ง
a {
b {
c;}}
d ;
หรือ
a {
b {
c;}}
d ;
กดไปทางขวาหมายถึง{};
อักขระทั้งหมดที่จัดอยู่ในตำแหน่งที่ไม่สั้นกว่าบรรทัดที่ยาวที่สุด จำนวนพื้นที่ใด ๆ หลังจากนั้นเป็นที่ยอมรับ
ดังนั้นด้านล่างทั้งหมดเป็นที่ยอมรับ:
a {
bc;
a {
bc ;
a {
bc ;
ฯลฯ ...
บรรทัดในรหัสใด ๆ อาจมี{};
อักขระระหว่างอักขระที่ไม่ใช่ whitspace อื่น ๆ การจัดการกรณีนี้ไม่จำเป็นแม้ว่าคุณจะเอียงก็ตามคุณควรปล่อยให้อยู่ในตำแหน่ง บรรทัดอาจไม่มี{};
อักขระใด ๆเลยและควรจัดการอย่างถูกต้อง ตามที่แสดงด้านล่าง
a {
b ;
c
d }
เนื่องจากเราไม่ต้องการให้Code Reviewเห็นสิ่งที่น่ากลัวที่เรากำลังทำอยู่คุณต้องทำให้โค้ดของคุณเล็กที่สุดเท่าที่จะทำได้
ตัวอย่าง / Testcases
Java ทั่วไป
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
กลายเป็น...
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!") ;}}
ภาพนั้นเอง
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;
}
}
กลายเป็น...
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 ;}}
Python ไม่ธรรมดาอย่างสมบูรณ์แบบ
สำหรับความคมชัด
def Main():
print("Hello, World!");
Main();
กลายเป็น...
def Main():
print("Hello, World!") ;
Main() ;
หมายเหตุ
- มาตรฐานช่องโหว่ใช้
- ใช้IO มาตรฐาน
- นี่คือรหัสกอล์ฟโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ!
- ฉันไม่รับผิดชอบต่อความเสียหายที่เกี่ยวข้องกับการเขียนโปรแกรมในรูปแบบ Right Hand Brace
- มีความสุข!
แก้ไขหมายเหตุ
ฉันยืนยันรายละเอียดการท้าทายอีกครั้งหวังว่าฉันจะไม่ขัดต่อกฎของทุกคนฉันรับประกันว่าคุณจะไม่ได้ตั้งใจ นี่ควรเป็นข้อมูลจำเพาะที่ชัดเจนและขัดแย้งกันน้อยกว่า
;{}
ตัวละครรวมตัวกันหากแยกกัน (ชัดเจนจากตัวอย่างไม่ใช่กฎและในความเป็นจริงหากบรรทัดประกอบด้วย\t}
การรักษาการเยื้องจะหมายถึงการไม่เลื่อน}
ขึ้นไปจนถึงจุดสิ้นสุด ของบรรทัดก่อนหน้า)
int a=0;System.out.println(a);