Có 97 ký tự ASCII mà mọi người gặp phải một cách thường xuyên. Họ thuộc bốn loại:
Thư (tổng cộng 52)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzSố hoặc Chữ số (tổng cộng 10)
0123456789Biểu tượng & dấu câu (tổng cộng 32)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~Khoảng trắng (tổng cộng 3)
Không gian
, tab\tvà dòng mới\n. (Chúng tôi sẽ coi các biến thể dòng mới như\r\nlà một nhân vật.)
Để đơn giản, chúng tôi sẽ gọi các loại này lần lượt là L, N, S và W.
Chọn bất kỳ trong số 24 hoán vị của các chữ cái LNSWbạn muốn và lặp lại nó vô thời hạn để tạo thành một mẫu lập trình cho chính bạn.
Ví dụ: bạn có thể chọn hoán vị NLWS, vì vậy mẫu lập trình của bạn sẽ là:
NLWSNLWSNLWSNLWSNLWS...
Bạn cần viết chương trình hoặc chức năng dựa trên mẫu này, trong đó:
Mỗi
Lđược thay thế bằng bất kỳ chữ cái (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz).Mỗi
Nđược thay thế bằng bất kỳ số nào (0123456789).Mỗi
Sđược thay thế bằng bất kỳ ký hiệu (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).Mỗi
Wđược thay thế bằng bất kỳ ký tự khoảng trắng (\t\n).
Về cơ bản, mã của bạn phải theo mẫu
<letter><number><symbol><whitespace><letter><number><symbol><whitespace>...
như tiêu đề câu hỏi gợi ý, ngoại trừ bạn có thể chọn một thứ tự khác nhau trong bốn loại nhân vật, nếu muốn.
Lưu ý rằng:
Thay thế cho một thể loại có thể là các nhân vật khác nhau. ví dụ,
9a ^8B\t~7c\n]hợp lệ phù hợp với mẫuNLWSNLWSNLWS(\tvà\nsẽ là ký tự theo nghĩa đen của chúng).Không có giới hạn độ dài mã. ví dụ
1A +2B -và1A +2Bvà1Avà1tất cả phù hợp với các mẫuNLWSNLWSNLWS....
Những gì mã tuân thủ mẫu của bạn phải làm là lấy một ký tự ASCII không được cấp phép và xuất một số từ 0 đến 4 dựa trên danh mục mà nó là thành viên trong phân loại ở trên. Nghĩa là, đầu ra 1nếu đầu vào là một chữ cái, 2nếu là một số, 3nếu là một ký hiệu và 4nếu khoảng trắng. Đầu ra 0nếu đầu vào không có cái nào trong số này ( ký tự điều khiển ).
Đối với đầu vào, bạn có thể thay vào đó bao gồm một số từ 0 đến 127, bao gồm mã của ký tự ASCII đầu vào.
Các cặp đầu vào (dưới dạng mã char) và đầu ra mà mã của bạn phải có chính xác như sau:
in out
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 4
10 4
11 0 or 4
12 0 or 4
13 0 or 4
14 0
15 0
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
31 0
32 4
33 3
34 3
35 3
36 3
37 3
38 3
39 3
40 3
41 3
42 3
43 3
44 3
45 3
46 3
47 3
48 2
49 2
50 2
51 2
52 2
53 2
54 2
55 2
56 2
57 2
58 3
59 3
60 3
61 3
62 3
63 3
64 3
65 1
66 1
67 1
68 1
69 1
70 1
71 1
72 1
73 1
74 1
75 1
76 1
77 1
78 1
79 1
80 1
81 1
82 1
83 1
84 1
85 1
86 1
87 1
88 1
89 1
90 1
91 3
92 3
93 3
94 3
95 3
96 3
97 1
98 1
99 1
100 1
101 1
102 1
103 1
104 1
105 1
106 1
107 1
108 1
109 1
110 1
111 1
112 1
113 1
114 1
115 1
116 1
117 1
118 1
119 1
120 1
121 1
122 1
123 3
124 3
125 3
126 3
127 0
Đầu vào 11, 12 và 13 tương ứng với các ký tự đôi khi được coi là khoảng trắng, do đó đầu ra của chúng có thể 0hoặc 4theo ý muốn của bạn.
Mã ngắn nhất tính bằng byte thắng.