Este es mi primer desafío en ppcg!
Entrada
Una cadena que consta de dos caracteres ascii diferentes. Por ejemplo
ABAABBAAAAAABBAAABAABBAABA
Reto
La tarea es decodificar esta cadena siguiendo estas reglas:
- Salta los dos primeros caracteres
- Divida el resto de la cadena en grupos de 8 caracteres.
- En cada grupo, reemplace cada carácter con
0
si ese carácter es el mismo que el primer carácter de la cadena original, y1
si no - Ahora cada grupo representa un byte. Convierta cada grupo en carácter a partir del código de bytes
- Concatenar todos los personajes
Ejemplo
Decodifiquemos la cadena de arriba.
AB AABBAAAA AABBAAAB AABBAABA
^^ ^ ^ ^
| | | |
| \---------|---------/
| |
Skip Convert to binary
Observe que A
es el primer carácter de la cadena original y B
es el segundo. Por lo tanto, reemplace cada A
con 0
y cada uno B
con 1
. Ahora obtenemos:
00110000 00110001 00110010
que está [0x30, 0x31, 0x32]
en binario Estos valores representan caracteres ["0", "1", "2"]
respectivamente, por lo que la salida final debería ser 012
.
Tanteo
Esto es, por supuesto, code-golf , lo que significa hacer que su código sea lo más corto posible. La puntuación se mide en bytes.
Restricciones y formato IO
Aplican reglas estándar. Aquí hay algunas reglas adicionales:
- Puede asumir una entrada válida
- La cadena de entrada consta de exactamente dos caracteres diferentes
- Los dos primeros personajes son diferentes.
- La longitud mínima de la cadena de entrada es de 2 caracteres.
- La longitud siempre dará 2 módulo 8
- Puede suponer que la cadena siempre constará solo de caracteres ASCII imprimibles
- Tanto en la entrada como en la cadena decodificada
- Los espacios en blanco iniciales y finales están permitidos en la salida (todo lo que coincida
/\s*/
)