Istnieje 97 znaków ASCII, z którymi ludzie spotykają się regularnie. Można je podzielić na cztery kategorie:
Listy (łącznie 52)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzLiczby lub cyfry (łącznie 10)
0123456789Symbole i znaki interpunkcyjne (łącznie 32)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~Biała spacja (3 ogółem)
Spacja
, tabulator\ti nowa linia\n. (Traktujemy warianty nowego wiersza jak\r\njeden znak).
Dla zwięzłości nazwiemy te kategorie odpowiednio L, N, S i W.
Wybierz dowolną z 24 kombinacji dowolnych liter LNSWi powtórz ją w nieskończoność, aby stworzyć szablon programowania dla siebie.
Na przykład możesz wybrać permutację NLWS, więc twoim szablonem programowania byłoby:
NLWSNLWSNLWSNLWSNLWS...
Musisz napisać program lub funkcję na podstawie tego szablonu, gdzie:
Każda
Ljest zastępowana dowolną literą (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz).Każda
Njest zastępowana dowolną liczbą (0123456789).Każdy
Sjest zastępowany dowolnym symbolem (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).Każdy
Wjest zastępowany dowolnym znakiem spacji (\t\n).
Zasadniczo kod musi być zgodny ze wzorem
<letter><number><symbol><whitespace><letter><number><symbol><whitespace>...
jak sugeruje tytuł pytania, z tym wyjątkiem, że w razie potrzeby możesz wybrać inną kolejność czterech kategorii znaków.
Uwaga:
Zamienniki dla kategorii mogą być różnymi postaciami. np.
9a ^8B\t~7c\n]poprawnie odpowiada szablonowiNLWSNLWSNLWS(\ti\nbędzie to ich dosłowne znaki).Nie ma ograniczeń długości kodu. przykład
1A +2B -i1A +2Bi1Ai1wszystkie są zgodne z szablonemNLWSNLWSNLWS....
Kod zgodny z szablonem musi pobrać jeden nierozszerzony znak ASCII i wypisać liczbę od 0 do 4 w zależności od kategorii, do której należy w powyższej kategoryzacji. To znaczy, 1jeśli dane wejściowe są literą, 2liczbą, 3symbolem i 4białą spacją. Wyprowadza, 0jeśli wejście nie jest żadnym z nich (znak kontrolny ).
W celu wprowadzenia można alternatywnie przyjąć liczbę od 0 do 127 włącznie, która reprezentuje kod wejściowego znaku ASCII.
Pary wejściowe (jako kod char) i wyjściowe, które musi posiadać Twój kod, są dokładnie następujące:
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
Wejścia 11, 12 i 13 odpowiadają znakom, które czasami są uważane za białe znaki, więc ich wyniki mogą być 0lub, 4jak chcesz.
Najkrótszy kod w bajtach wygrywa.