Desafio
O desafio é criptografar uma determinada sequência, usando as regras especificadas abaixo. A sequência conterá apenas letras minúsculas , dígitos e / ou espaços em branco .
Equivalente a um personagem
Agora, primeiro você precisaria saber como encontrar o "equivalente" de cada personagem.
Se o personagem é uma consoante, esta é a maneira de descobrir que é 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 exemplo: 'h' e 't' são equivalentes entre si porque 'h', 't' estão na 6ª posição do início e do fim, respectivamente.
O mesmo procedimento é seguido para encontrar o equivalente a vogais / dígitos. Você lista todas as vogais ou dígitos (começando em 0) em ordem e encontra o equivalente.
Dada a seguir, é apresentada a lista dos equivalentes de todos os 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
Regras de criptografia
1) Você começa a se mover da esquerda e vai para a direita.
2) Se o caractere for uma consoante / dígito, seu equivalente será utilizado e, se for um espaço em branco, será utilizado um espaço em branco.
3) Se o personagem é uma vogal, você pega o equivalente e começa a se mover na direção oposta. Por exemplo, se você estiver se movendo para a direita e encontrar uma vogal, criptografe esse caractere, pule para o caractere não criptografado mais à direita e comece a criptografar na direção esquerda e vice-versa.
4) Você não deve considerar um personagem na mesma posição duas vezes. As etapas devem ser seguidas até que todos os caracteres na entrada sejam cobertos.
5) O número total de caracteres na entrada (incluindo espaços em branco) deve ser igual ao número total de caracteres na saída.
Observe que os caracteres criptografados aparecem na saída na ordem em que foram criptografados.
Agora, deixe-me criptografar uma string para você.
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"
Exemplos
"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 "
Você também pode optar por usar letras maiúsculas em vez de letras minúsculas.
Pontuação
Isso é código-golfe , então o código mais curto vence!