Desafío
El desafío es encriptar una cadena dada, usando las reglas que se especifican a continuación. La cadena solo contendrá alfabetos en minúscula , dígitos y / o espacios en blanco .
Equivalente de un personaje
Ahora, en primer lugar, necesitaría saber cómo encontrar el "equivalente" de cada personaje.
Si el carácter es una consonante, esta es la forma de encontrar su equivalente:
1) List all the consonants in alphabetical order
b c d f g h j k l m n p q r s t v w x y z
2) Get the position of the consonant you are finding the equivalent of.
3) The equivalent is the consonant at that position when starting from the end.
por ejemplo: 'h' y 't' son equivalentes entre sí porque 'h', 't' están en la sexta posición desde el inicio y el final, respectivamente.
Se sigue el mismo procedimiento para encontrar el equivalente de vocales / dígitos. Usted enumera todas las vocales o los dígitos (comenzando desde 0) en orden y encuentra el equivalente.
A continuación se muestra la lista de los equivalentes de todos los caracteres:
b <-> z
c <-> y
d <-> x
f <-> w
g <-> v
h <-> t
j <-> s
k <-> r
l <-> q
m <-> p
n <-> n
a <-> u
e <-> o
i <-> i
0 <-> 9
1 <-> 8
2 <-> 7
3 <-> 6
4 <-> 5
Reglas de cifrado
1) Empiezas a moverte desde la izquierda y vas hacia la derecha.
2) Si el carácter es una consonante / dígito, se toma su equivalente y si se trata de un espacio en blanco, se toma un espacio en blanco.
3) Si el personaje es una vocal, tomas su equivalente y comienzas a moverte en la dirección opuesta. Por ejemplo, si se mueve hacia la derecha y encuentra una vocal, encripte ese carácter, luego salte al carácter sin encriptar más a la derecha y comience a encriptar en la dirección izquierda, y viceversa.
4) No debes considerar a un personaje en la misma posición dos veces. Se deben seguir los pasos hasta que se cubran todos los caracteres de la entrada.
5) El número total de caracteres en la entrada (incluidos los espacios en blanco) debe ser igual al número total de caracteres en la salida.
Tenga en cuenta que los caracteres cifrados aparecen en la salida en el orden en que se cifraron.
Ahora déjame encriptar una cadena para ti.
String = "tre d1go3t is"
Moving left to right
"t" -> "h"
"r" -> "k"
"e" -> "o"
Vowel encountered. Now moving right to left.
"s" -> "j"
"i" -> "i"
Vowel encountered. Now moving left to right.
" " -> " "
"d" -> "x"
"1" -> "8"
"g" -> "v"
"o" -> "e"
Vowel encountered. Now moving right to left.
" " -> " "
"t" -> "h"
"3" -> "6"
Output -> "hkoji x8ve h6"
Ejemplos
"flyspy" -> "wqcjmc"
"hero" -> "toek"
"heroic" -> "toyike"
"ae" -> "uo"
"abe" -> "uoz"
"the space" -> "htoo jmuy"
"a d1g13t" -> "uh68v8x "
"we xi12" -> "fo78i d"
"this is a code" -> "htioj ixej uy "
También puede optar por utilizar alfabetos en mayúsculas en lugar de minúsculas.
Puntuación
Este es el código de golf , por lo que gana el código más corto.