มีอักขระ ASCII 97 ตัวที่ผู้คนพบเป็นประจำ พวกเขาแบ่งออกเป็นสี่ประเภท:
ตัวอักษร (ทั้งหมด 52 ตัว)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
ตัวเลขหรือตัวเลข (10 ทั้งหมด)
0123456789
สัญลักษณ์และเครื่องหมายวรรคตอน (32 ทั้งหมด)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
พื้นที่ว่าง (ทั้งหมด 3 รายการ)
พื้นที่
\t
\n
(เราจะใช้รูปแบบอักขระขึ้นบรรทัดใหม่เหมือน\r\n
ตัวละครตัวหนึ่ง)
เพื่อความกระชับเราจะเรียกหมวดหมู่เหล่านี้ว่า L, N, S และ W ตามลำดับ
เลือกพีชคณิต 24 ตัวที่LNSW
คุณต้องการและทำซ้ำไปเรื่อย ๆ เพื่อสร้างเทมเพลตการเขียนโปรแกรมสำหรับตัวคุณเอง
ตัวอย่างเช่นคุณอาจเลือกการเรียงสับเปลี่ยนNLWS
ดังนั้นเทมเพลตการเขียนโปรแกรมของคุณจะเป็น:
NLWSNLWSNLWSNLWSNLWS...
คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นตามเทมเพลตนี้โดยที่:
ทุกคน
L
จะถูกแทนที่ด้วยตัวอักษรใด ๆ (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
)ทุกคน
N
จะถูกแทนที่ด้วยหมายเลขใด ๆ (0123456789
)ทุกคน
S
จะถูกแทนที่ด้วยสัญลักษณ์ใด ๆ (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
)ทุกคน
W
จะถูกแทนที่ด้วยอักขระช่องว่างใด ๆ (\t\n
)
โดยทั่วไปรหัสของคุณจะต้องเป็นไปตามรูปแบบ
<letter><number><symbol><whitespace><letter><number><symbol><whitespace>...
ตามที่ชื่อคำถามแนะนำยกเว้นคุณสามารถเลือกการเรียงลำดับตัวละครสี่หมวดหมู่อื่นได้ตามต้องการ
โปรดทราบว่า:
การแทนที่หมวดหมู่อาจเป็นอักขระอื่นได้ เช่น
9a ^8B\t~7c\n]
ถูกต้องสอดคล้องกับแม่แบบNLWSNLWSNLWS
(\t
และ\n
จะเป็นตัวอักษรที่แท้จริงของพวกเขา)ไม่มีข้อจำกัดความยาวของรหัส เช่น
1A +2B -
และ1A +2B
และ1A
และทั้งหมดเป็นไปตามแม่แบบ1
NLWSNLWSNLWS...
สิ่งที่รหัสที่สอดคล้องกับเทมเพลตของคุณต้องทำคือใช้อักขระ ASCII ที่ไม่ได้เพิ่มหนึ่งตัวและส่งออกตัวเลขตั้งแต่ 0 ถึง 4 ตามหมวดหมู่ที่เป็นสมาชิกของหมวดหมู่ด้านบน นั่นคือเอาต์พุต1
ถ้าอินพุตเป็นตัวอักษร2
ถ้าตัวเลข3
ถ้าสัญลักษณ์และ4
หากช่องว่าง เอาต์พุต0
ถ้าอินพุตไม่ใช่สิ่งเหล่านี้ ( อักขระควบคุม )
สำหรับการป้อนข้อมูลคุณอาจเลือกใช้หมายเลข 0 ถึง 127 ที่ครอบคลุมรหัสของอักขระ ASCII อินพุต
อินพุต (เป็นรหัสถ่าน) และเอาต์พุตจับคู่รหัสของคุณจะต้องมีดังนี้:
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
อินพุต 11, 12 และ 13 สอดคล้องกับอักขระที่บางครั้งถูกพิจารณาว่าเป็นช่องว่างดังนั้นเอาต์พุตของพวกเขาอาจเป็น0
หรือ4
ตามที่คุณต้องการ
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ