Nẹp tay phải là một kiểu dấu ngoặc trong đó các dấu ngoặc nhọn và dấu chấm phẩy đều được căn chỉnh theo một điểm duy nhất ở phía bên phải của tệp aa.
Nói chung, điều này được coi là thực hành xấu, vì một số lý do.
Các thách thức
Lấy một chuỗi nhiều dòng thông qua bất kỳ phương pháp nào và chuyển đổi kiểu niềng răng của nó thành Niềng tay phải.
Đối với thử thách này, bạn chỉ cần nó hoạt động trên mã Java, tuy nhiên, về mặt lý thuyết, nó sẽ hoạt động trên bất kỳ mã nào sử dụng Dấu ngoặc và Dấu chấm phẩy.
Bạn phải lấy tất cả các {};
ký tự liên tiếp, với bất kỳ khoảng trắng nào giữa chúng. VÍ DỤ. }}
, ; }
}\n\t\t}
và sắp xếp chúng ở phía bên phải của tệp thông qua việc sử dụng khoảng trắng.
ví dụ:
a {
b;
{c
nên trở thành
a {
b ;{
c
Hoặc, trừu tượng hơn, đẩy bất kỳ và tất cả khoảng trắng từ bên trái của tất cả các {};
ký tự, sang bên phải.
Lõm dòng nên được bảo tồn khác. Các dòng chỉ chứa khoảng trắng sau khi chuyển động của các {};
ký tự có thể được loại bỏ tùy ý.
Ví dụ:
a{
b{
c;
}
}
d;
Có thể trở thành một trong hai
a {
b {
c;}}
d ;
hoặc là
a {
b {
c;}}
d ;
Đẩy sang phải là tất cả các {};
ký tự được căn chỉnh đến một điểm không ngắn hơn dòng dài nhất. Bất kỳ số lượng không gian sau đó là chấp nhận được.
Vì vậy, tất cả những điều dưới đây là chấp nhận được:
a {
bc;
a {
bc ;
a {
bc ;
v.v ...
Các dòng trong bất kỳ mã nào có thể chứa các {};
ký tự giữa các ký tự không phải khoảng trắng khác, việc xử lý trường hợp này là không cần thiết, mặc dù nếu bạn nghiêng, bạn nên để chúng tại chỗ. Các dòng cũng có thể không chứa bất kỳ {};
ký tự nào và điều này cần được xử lý chính xác. Như được hiển thị dưới đây.
a {
b ;
c
d }
Vì chúng tôi không muốn Đánh giá mã để xem những điều khủng khiếp mà chúng tôi đang thực hiện, bạn cần làm cho mã của mình nhỏ nhất có thể.
Ví dụ / Testcase
Java chung
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
trở thành ...
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!") ;}}
Hình ảnh chính nó
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;
}
}
trở thành ...
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 không hoàn hảo
Để tương phản
def Main():
print("Hello, World!");
Main();
trở thành ...
def Main():
print("Hello, World!") ;
Main() ;
Ghi chú
- Áp dụng sơ hở tiêu chuẩn
- Áp dụng IO tiêu chuẩn
- Đây là môn đánh gôn , vì vậy chương trình ngắn nhất tính bằng byte thắng!
- Tôi không chịu trách nhiệm cho các thiệt hại liên quan đến lập trình theo kiểu Niềng tay phải
- Chúc vui vẻ!
Chỉnh sửa ghi chú
Tôi đã điều chỉnh lại các chi tiết thách thức, Hy vọng rằng tôi đã không phá vỡ quan điểm của bất kỳ ai về các quy tắc, tôi đảm bảo với bạn rằng đó là vô ý. Đây phải là một thông số rõ ràng hơn và ít xung đột hơn.
;{}
ký tự được tập hợp nếu chúng nằm trên các dòng riêng biệt (nó chỉ rõ ràng từ ví dụ, không phải là các quy tắc và trên thực tế nếu một dòng bao gồm \t}
lưu giữ vết lõm có nghĩa là không di chuyển }
đến cuối của dòng trước)
int a=0;System.out.println(a);