Esta tarea es bastante simple y utiliza tres caracteres distintos de "operador". Su tarea es, dada una simple secuencia de letras, realice la siguiente tarea para codificarla utilizando <
, >
, *
. Puede elegir usar letras mayúsculas o minúsculas, no tiene que manejar ambas.
Explicación de cifrado
El cifrado es simple, está utilizando operaciones de incremento y decremento para recorrer de la letra 1 a la letra final, *
siendo su función de "envío". El operador para "incremento" será >
y "decremento" será <
.
Un ejemplo usando la palabra adbc
:
- Comience con la primera letra de la palabra, envíe esa letra.
a
- Luego, use
>
y<
(como brainfuck) para "navegar" la letra actual a la siguiente.a>
daría como resultado 'elevar'a
por 1 al pie de la letrab
.a<
resultaríaz
porque está bajando la letra (se ajusta, siempre debe elegir la dirección que resulte en la MENOS cantidad de operaciones). - Después de generar la combinación minimalista correcta de
<
y>
generar a*
para indicar que hemos llegado a la siguiente letra.
Los pasos para codificar adbc
serían:
a # a
a>>>* # ad
a>>>*<<* # adb
a>>>*<<*>* # adbc
Ejemplos
Los pasos para codificar aza
serían:
a # a
a<* # az
a<*>* # aza
Más ejemplos:
"abcdef" = "a>*>*>*>*>*"
"zyaf" = "z<*>>*>>>>>*"
"zzzzzz" = "z*****"
"z" = "z"
"zm" = "z<<<<<<<<<<<<<*" or "z>>>>>>>>>>>>>*" (equidistant)
"zl" = "z>>>>>>>>>>>>*"
"alphabet" = "a>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*"
"banana" = "b<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*" OR "b<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*"
"abcdefghijklmnopqrstuvwxyz" = "a>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*"
"abcdefz" = "a>*>*>*>*>*<<<<<<*"
Reglas
- Estamos codificando, no decodificando, así que no lo estropees.
- Puede suponer que el mensaje contendrá letras
[A-Z]
o[a-z]
, a su elección. - Puede usar cualquier carácter que no sea letra / numérico / reservado para denotar
*
(EG$
). - Debe tener el final
*
, no está implícito en las repeticiones. - Puede suponer que no hay cadenas vacías, pero es posible un solo carácter.
- Si es equidistante en ambos sentidos a la siguiente letra, puede elegir una dirección.
- Este es el código de golf , el menor recuento de bytes gana.
Por favor explique su respuesta, ayuda a otros a aprender de esta manera.
zl
debería usar >
.
alphabet
está en mi opinión a>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*
y zl
debería ser z>>>>>>>>>>>>*
y para banana
si existe una segunda soluciónb<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*
zm
. @jorg buenas capturas, las arregló todas, fue un esfuerzo manual.
abcdefghijklmnopqrstuvwxyz
y no es su propia entrada?