介绍
代码页将整数值映射到特定字符。我们可以像这样可视化代码页:
+ --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- +- -+ --- + --- + --- +- | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- +- -+ --- + --- + --- +- | 0 | q | w | e | r | t | z | 你 我 o | p | 一个| s | d | f | g | j | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- +- -+ --- + --- + --- +- | 1 | k | l | y | x | c | v | b | n | 米| 问| W | E | R | T | Z | U | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- +- -+ --- + --- + --- +- | 2 | 我 O | P | A | S | D | F | G | H | J | | | | | | | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- +- -+ --- + --- + --- +-
这些行指定十六进制数的第一位,第二列指定十六进制数。
挑战
给定一个由16-255个唯一字符组成的字符串,请使用字符串中每个字符的从零开始的索引作为其值,输出相应的代码页。qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJ
例如,输入将产生上表。
- 输出必须与上表完全相同的格式。仅尾随换行符是可选的。
- 如果输入长度不是16的倍数,则需要为剩余字符开始新的一行,并将未使用的单元格留空(=填充3个空格)。
- 每个字符都精确地放置在单元格的中间,并在左右两侧填充一个空格。
- 第一行和第一列中的值由带有数字的十六进制数字给出
0123456789ABCDEF
。左侧和右侧也填充了一个空格。您可以选择使用小写的十六进制数字,但需要坚持使用一个。 - 输出中出现的唯一字符是连字符
-
,加号+
,管道|
,空格,十六进制数字和输入中的字符。
- 禁止使用任何与ASCII艺术表相关的内建函数或以任何方式使该问题变得微不足道的方法。
- 您可以假设输入仅包含特定编码的字符。请说明是否是这种情况。
- 如果您的语言只能处理ASCII输入,则可以采用仅ASCII输入和重复字符。
规则
编码愉快!
我们可以使用小写的十六进制数字吗?
—
门把手
@Doorknob是的,在挑战中进行了澄清。
—
Denker
我们是否可以假设输入为ASCII(可能重复的字符)?
—
Luis Mendo
@DenkerAffe那会与给定的字符串16-255个唯一字符中的单词“ unique”或“ 255”相冲突,但是……
—
Luis
@LuisMendo嗯,是的。对于只能处理ASCII的语言,将允许这样做。
—
Denker