Есть 97 символов ASCII, с которыми люди сталкиваются на регулярной основе. Они делятся на четыре категории:
Письма (всего 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
по вашему желанию.
Самый короткий код в байтах побеждает.