Cụ thể, sử dụng từng ký hiệu này ít nhất một lần trong mã nguồn của bạn:
! " # $ % & ' () * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
Các biểu tượng bên trong các bình luận, chuỗi ký tự, biểu thức chính quy (hoặc bất kỳ loại chữ nào khác, v.v.) không được tính (nhưng các dấu phân cách của chúng như /**/
hoặc ""
đếm).
Chương trình không nên thực hiện bất kỳ hành động. Nó chỉ phải biên dịch và không làm gì khi chạy.
Nếu vì một lý do nào đó, một số biểu tượng không thể được sử dụng trong ngôn ngữ bạn chọn, hãy giải thích điều đó một cách chặt chẽ (những gì và tại sao phải được loại trừ).
Cập nhật: Một vài câu trả lời được sử dụng với các biểu thức thông thường. Tôi coi điều này có một chút vấn đề, nó giống như việc đưa chúng vào chuỗi ký tự hoặc bình luận (đó là lý do tại sao tôi đặt vv trong yêu cầu đó). Hãy thử mà không có điều này. Tôi cũng cập nhật các yêu cầu trên.
Cập nhật: Chiến thắng mã ngắn nhất (được gắn thẻ là mã golf ). Theo đề xuất, rất có thể chúng ta sẽ cần một số tiêu chí tie-breaker. Tôi đề nghị rằng nếu có một sự ràng buộc, thì người chiến thắng là người mà các biểu tượng ASCII xuất hiện càng nhiều thứ tự càng tốt. Chính thức: Lọc ra lần xuất hiện đầu tiên của từng biểu tượng được liệt kê từ một chương trình. Điều này sẽ dẫn đến một hoán vị trên các biểu tượng được liệt kê. Chương trình có số lần nghịch đảo ít hơn sẽ hoán vị.
Cập nhật: Tôi rất vui khi thấy một số / nhiều giải pháp bằng các ngôn ngữ thông thường / chính thống, chẳng hạn như C (++), Java, Scala, Haskell, v.v.
#
, @
, và `nằm ngoài không hợp pháp của bất kỳ loại đen
@%
cũng không phải là backtick có thể xuất hiện trong c ngoại trừ một phần của nghĩa đen (trong các phiên bản đủ mới của c%
có thể xuất hiện trong các bản sao). (và#
chỉ xuất hiện trong các chỉ thị tiền xử lý, nhưng chúng ta sẽ phải sống với điều đó)? Đó là, tôi đang yêu cầu cách tiếp cận của Matt phải được thực hiện hợp pháp.