Kết thúc các tab so với không gian chiến tranh
Vì vậy, đã có rất nhiều tranh luận về việc nên sử dụng các tab hoặc khoảng trắng để thụt lề / định dạng mã. Bạn có thể giúp các trường đại học giải quyết tranh chấp, bằng cách đi đến một phương pháp định dạng độc đáo vô cùng điên rồ .
Công việc của bạn là viết một chương trình hoặc chức năng đầy đủ để mở rộng tất cả các tab thành bốn không gian. Và sau đó thay thế một chuỗi n khoảng trắng bằng "/ (n - hai ngôi sao ở đây) /". Bạn sẽ nhận được đầu vào trên nhiều dòng ở bất kỳ định dạng hợp lý nào (mảng chuỗi đơn cho mỗi dòng mới. Mảng cột, v.v.)
Mẫu đầu vào xấu hổ bị đánh cắp . Lưu ý rằng vì các tab được mở rộng tự động thành bốn khoảng trắng trên SE, tôi biểu thị nó là ký tự "^", nhưng bạn cũng phải xử lý các tab (codepoint 0x09). Tất cả các ký tự "^" đại diện cho một bảng.
Calculate the value 256 and test if it's zero
If the interpreter errors on overflow this is where it'll happen
++++++++[>++++++++<-]>[<++++>-]
+<[>-<
Not zero so multiply by 256 again to get 65536
[>++++<-]>[<++++++++>-]<[>++++++++<-]
+>[>
# Print "32"
++++++++++[>+++++<-]>+.-.[-]<
<[-]<->] <[>>
# Print "16"
+++++++[>+++++++<-]>.+++++.[-]<
<<-]] >[>
# Print "8"
++++++++[>+++++++<-]>.[-]<
<-]<
# Print " bit cells\n"
+++++++++++[>+++>+++++++++>+++++++++>+<<<<-]>-.>-.+++++++.+++++++++++.<.
>>.++.+++++++..<-.>>-
Clean up used cells.
[[-]<]l
^this is preceded by a tab
^^two tabs
^^^three tabs etcetera!
Sản lượng mẫu
Calculate the value 256 and test if it's zero
If the interpreter errors on overflow this is where it'll happen
++++++++[>++++++++<-]>[<++++>-]
+<[>-<
/**/Not zero so multiply by 256 again to get 65536
/**/[>++++<-]>[<++++++++>-]<[>++++++++<-]
/**/+>[>
/******/# Print "32"
/******/++++++++++[>+++++<-]>+.-.[-]<
/**/<[-]<->] <[>>
/******/# Print "16"
/******/+++++++[>+++++++<-]>.+++++.[-]<
<<-]] >[>
/**/# Print "8"
/**/++++++++[>+++++++<-]>.[-]<
<-]<
# Print " bit cells\n"
+++++++++++[>+++>+++++++++>+++++++++>+<<<<-]>-.>-.+++++++.+++++++++++.<.
>>.++.+++++++..<-.>>-
Clean up used cells.
[[-]<]l
/**/this is preceded by a tab
/******/two tabs
/**********/three tabs etcetera!
Vì trường đại học cần không gian để tải xuống cả Vim và Emacs, bạn được phép lưu trữ rất ít cho mã của mình. Do đó, đây là môn đánh gôn và mã ngắn nhất sẽ thắng. Bạn có thể cho rằng đầu vào được hình thành tốt và các dòng có ít hơn bốn khoảng trắng (sau khi thay thế các tab) có thể dẫn đến hành vi không xác định.
Khước từ
Chiến lược định dạng "xuất sắc" này được cung cấp bởi Geobits và được sao chép lại với sự cho phép của anh ta. Không có lập trình viên nào bị tổn hại trong quá trình sản xuất thử thách này.
/*
, hoặc có thể được coi là không phải là "đầu vào được hình thành tốt" không? Một tệp nguồn C ++ sẽ là một thử nghiệm tốt hơn, bởi vì nhận xét đa dòng của nó /* */
có thể phá vỡ một số câu trả lời thay thế đầu tiên và cuối cùng của không gian hàng đầu bằng một /
, và sau đó tiến hành điền vào chỗ trống *
.
/* */
mã C ++, nhưng lần này ở đầu dòng. Theo thông số kỹ thuật của bạn, nó nên được để lại như là. Đây là cái bẫy và đã phát hiện ra các câu trả lời sai, rằng một biểu thức chính quy /\** /
được sử dụng để lấp đầy các khoảng trống giữa // bằng dấu hoa thị sẽ biến dòng thành /***/
. Tôi cũng đã thấy chuyển đổi này /*//*/
. Tôi cho rằng cả hai đều không chính xác.