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)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Số hoặc Chữ số (tổng cộng 10)
0123456789
Biểu tượng & dấu câu (tổng cộng 32)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Khoảng trắng (tổng cộng 3)
Không gian
\t
và dòng mới\n
. (Chúng tôi sẽ coi các biến thể dòng mới như\r\n
là 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 LNSW
bạ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
(\t
và\n
sẽ 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 +2B
và1A
và1
tấ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 1
nếu đầu vào là một chữ cái, 2
nếu là một số, 3
nếu là một ký hiệu và 4
nếu khoảng trắng. Đầu ra 0
nế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ể 0
hoặc 4
theo ý muốn của bạn.
Mã ngắn nhất tính bằng byte thắng.