Introducción
Una página de códigos asigna valores enteros a un carácter específico. Podemos visualizar una página de códigos como esta:
+ --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- + El | El | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- + El | 0 | q | w | e | r | t | z | u | yo | o | p | a | s | d | f | g | j | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- + El | 1 | k | l | y | x | c | v | b | n | m | Q | W | E | R | T | Z | U | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- + El | 2 | Yo | O | P | A | S | D | F | G | H | J | El | El | El | El | El | El | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- +
Las filas especifican el primer dígito y las columnas el segundo dígito del número hexadecimal.
El reto
Dada una cadena de 16-255 caracteres únicos, muestre la página de códigos correspondiente utilizando el índice basado en cero de cada carácter en la cadena como su valor. La entrada, qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJ
por ejemplo, arrojaría la tabla de arriba.
- La salida debe estar exactamente en el mismo formato que la tabla anterior. Solo una nueva línea final es opcional.
- Si la longitud de entrada no es un múltiplo de 16, debe comenzar una nueva fila para los caracteres restantes y dejar vacías las celdas no utilizadas (= llenas de 3 espacios).
- Cada personaje se coloca exactamente en el medio de una celda, rellenado por un espacio a la izquierda y a la derecha.
- Los valores en la primera fila y columna están dados por números hexadecimales con los dígitos
0123456789ABCDEF
. Esos están rellenados con un espacio a la izquierda y a la derecha también. Puede optar por usar dígitos hexadecimales en minúsculas, pero debe atenerse a uno. - Los únicos caracteres presentes en la salida son guiones
-
, más+
, tuberías|
, espacios, los dígitos para números hexadecimales y los caracteres de la entrada.
- Se prohíbe cualquier construcción que esté relacionada con tablas de arte ASCII o que trivialice el problema de alguna manera.
- Puede suponer que la entrada consta solo de caracteres de una codificación específica. Por favor, especifique si ese es el caso.
- Si su idioma solo puede manejar la entrada ASCII, puede asumir una entrada solo ASCII y caracteres repetidos.
Reglas
- Función o programa completo permitido.
- Reglas predeterminadas para entrada / salida.
- Se aplican lagunas estándar .
- Este es el código de golf , por lo que gana la cuenta de bytes más baja. Tiebreaker es una presentación anterior.
¡Feliz codificación!
Respuestas:
Pyth, 60 bytes
La nueva línea principal es significativa.
Pruébalo aquí.
fuente
+---+---+---[...]
. En Pyth, la función de nueva línea imprime y devuelve su argumento.Python 3.5,
326355bytes:( +29 bytes ya que si la longitud de la última fila no es múltiplo de 16, las celdas no utilizadas deben dejarse vacías (aunque, en mi opinión, se ve mucho mejor si esas celdas vacías ni siquiera se muestran) )
¡Funciona de maravilla!
Entradas y salidas de muestra:
Espero que esté bien.
Además, aquí hay otra versión que creé para este desafío, que, aunque es un candidato no válido, ya que no imprime celdas vacías adicionales para la última fila si su longitud no es un 16 múltiple, en mi opinión, genera una página mucho mejor que el requerido por OP, principalmente porque ni siquiera muestra celdas vacías si la última fila no es múltiplo de 16, sino que solo muestra celdas llenas, y eso es todo:
Aquí hay una entrada y salida de muestra para el código inaplicable anterior:
fuente
05AB1E ,
6563 bytesCódigo:
Pruébalo en línea! . Utiliza la codificación CP-1252 .
fuente
JavaScript (ES6), 148 bytes
El
' 0123456789ABCDEF'
existe para rellenar la primera columna, pero convenientemente también cubre la primera fila. La cadena de entrada se rellena con espacios para permitir que se divida en subcadenas de longitud 16,(?|^)
evitando que el espacio inicial coincida. El resto es solo unir las piezas.fuente
Excel VBA, 157 Bytes (¿Hacer trampa?)
Función de ventana inmediata anónima de VBE que toma de manera destructiva la entrada del rango
[A1]
y las salidas alActiveSheet
objeto.Golfed
Formateado
De entrada y salida
Dado:
la salida generada es
fuente