Istnieje 97 znaków ASCII, z którymi ludzie spotykają się regularnie. Można je podzielić na cztery kategorie:
Listy (łącznie 52)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Liczby lub cyfry (łącznie 10)
0123456789
Symbole i znaki interpunkcyjne (łącznie 32)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Biała spacja (3 ogółem)
Spacja
\t
i nowa linia\n
. (Traktujemy warianty nowego wiersza jak\r\n
jeden znak).
Dla zwięzłości nazwiemy te kategorie odpowiednio L, N, S i W.
Wybierz dowolną z 24 kombinacji dowolnych liter LNSW
i 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
L
jest zastępowana dowolną literą (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
).Każda
N
jest zastępowana dowolną liczbą (0123456789
).Każdy
S
jest zastępowany dowolnym symbolem (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
).Każdy
W
jest 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
(\t
i\n
będzie to ich dosłowne znaki).Nie ma ograniczeń długości kodu. przykład
1A +2B -
i1A +2B
i1A
i1
wszystkie 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, 1
jeśli dane wejściowe są literą, 2
liczbą, 3
symbolem i 4
białą spacją. Wyprowadza, 0
jeś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ć 0
lub, 4
jak chcesz.
Najkrótszy kod w bajtach wygrywa.