Es gibt 97 ASCII- Zeichen, die Menschen regelmäßig begegnen. Sie fallen in vier Kategorien:
Buchstaben (52 gesamt)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzZahlen oder Ziffern (10 insgesamt)
0123456789Symbole & Interpunktion (32 insgesamt)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~Leerzeichen (3 insgesamt)
Raum
, Reiter\tund Newline\n. (Wir behandeln Zeilenumbruchvarianten\r\nals ein Zeichen.)
Der Einfachheit halber werden wir diese Kategorien L, N, S und W nennen.
Wählen Sie eine der 24 Permutationen der LNSWgewünschten Buchstaben aus und wiederholen Sie sie auf unbestimmte Zeit, um eine eigene Programmiervorlage zu erstellen.
Beispielsweise könnten Sie die Permutation auswählen NLWS, sodass Ihre Programmiervorlage wie folgt lautet:
NLWSNLWSNLWSNLWSNLWS...
Sie müssen ein Programm oder eine Funktion basierend auf dieser Vorlage schreiben, wobei:
Jeder
Lwird durch einen Buchstaben (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz) ersetzt.Jedes
Nwird durch eine beliebige Zahl ersetzt (0123456789).Jedes
Swird durch ein beliebiges Symbol (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~) ersetzt.Jedes
WZeichen wird durch ein Leerzeichen (\t\n) ersetzt.
Grundsätzlich muss Ihr Code dem Muster folgen
<letter><number><symbol><whitespace><letter><number><symbol><whitespace>...
Wie aus dem Fragentitel hervorgeht, können Sie bei Bedarf eine andere Reihenfolge der vier Zeichenkategorien auswählen.
Beachten Sie, dass:
Ersetzungen für eine Kategorie können unterschiedliche Zeichen sein. zB
9a ^8B\t~7c\n]passt sich gültig an die Schablone anNLWSNLWSNLWS(\tund\nwürde ihre wörtlichen Zeichen sein).Es gibt keine Code-Längenbeschränkungen. zB
1A +2B -und1A +2Bund1Aund1alle entsprechen der VorlageNLWSNLWSNLWS....
In Ihrem vorlagenkonformen Code muss lediglich ein nicht erweitertes ASCII- Zeichen verwendet und eine Zahl von 0 bis 4 ausgegeben werden, je nachdem, zu welcher Kategorie er in der obigen Kategorisierung gehört. Das heißt, es wird ausgegeben, 1wenn die Eingabe ein Buchstabe, 2eine Zahl, 3ein Symbol und ein 4Leerzeichen ist. Ausgabe, 0wenn die Eingabe keine davon ist (ein Steuerzeichen ).
Zur Eingabe können Sie alternativ eine Zahl von 0 bis einschließlich 127 eingeben, die den Code des eingegebenen ASCII-Zeichens darstellt.
Die Eingabe- (als Zeichencode) und Ausgabepaare, die Ihr Code haben muss, lauten genau wie folgt:
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
Die Eingänge 11, 12 und 13 entsprechen den Zeichen, die manchmal Leerzeichen betrachtet, so kann ihre Ausgaben sein 0oder , 4wie Sie wünschen.
Der kürzeste Code in Bytes gewinnt.