Вызов
Задача состоит в том, чтобы зашифровать данную строку, используя правила, указанные ниже. Строка будет содержать только строчные буквы , цифры и / или пробелы .
Эквивалент персонажа
Теперь, во-первых, вам нужно знать, как найти «эквивалент» каждого персонажа.
Если символ является согласной, это способ найти его эквивалент:
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.
Например: «h» и «t» являются эквивалентами друг друга, потому что «h», «t» находятся в 6-й позиции от начала и конца соответственно.
Для поиска эквивалента гласных / цифр используется та же процедура. Вы перечисляете все гласные или цифры (начиная с 0) по порядку и находите эквивалент.
Ниже приведен список эквивалентов всех символов:
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
Правила шифрования
1) Вы начинаете двигаться слева и идете вправо.
2) Если символ является согласной / цифрой, то берется его эквивалент, а если это пробел, то пробел.
3) Если персонаж гласный, вы берете его эквивалент и начинаете двигаться в противоположном направлении. Например, если вы двигаетесь вправо и встречаете гласный, зашифруйте этот символ, затем перейдите к крайнему правому незашифрованному символу и начните шифрование в левом направлении, и наоборот.
4) Вы не должны рассматривать персонажа в одной и той же позиции дважды. Шаги должны быть выполнены, пока все символы на входе не будут покрыты.
5) Общее количество символов на входе (включая пробелы) должно быть равно общему количеству символов на выходе.
Обратите внимание, что зашифрованные символы появляются в выводе в том порядке, в котором они были зашифрованы.
Теперь позвольте мне зашифровать строку для вас.
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"
Примеры
"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 "
Вы также можете использовать прописные буквы вместо строчных.
счет
Это код-гольф , поэтому выигрывает самый короткий код!