人们经常会遇到97个ASCII字符。它们分为四类:
字母(共52个)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
数字或数字(共10个)
0123456789
符号和标点符号(共32个)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
空格(共3个)
空格
\t
和换行符\n
。(我们会将换行符\r\n
视为一个字符。)
为简洁起见,我们将这些类别分别称为L,N,S和W。
选择LNSW
您想要的字母的24个排列中的任意一个,然后无限重复,以形成自己的编程模板。
例如,您可以选择permutation 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 -
and1A +2B
和1A
and1
都符合模板NLWSNLWSNLWS...
。
符合模板的代码必须执行的操作是接受一个未扩展的ASCII字符,并根据其在上述分类中所属于的类别,输出一个介于0到4之间的数字。也就是说,1
如果输入是字母,2
数字,3
符号和4
空格,则输出。输出0
如果输入是没有这些(一个控制字符)。
对于输入,您可以选择输入0到127之间的一个数字(包括0和127),代表输入ASCII字符的代码。
您的代码必须具有的输入(作为char代码)和输出对如下所示:
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
您想要的。
以字节为单位的最短代码获胜。