Виклик
Завдання полягає в шифруванні заданого рядка, використовуючи правила, як зазначено нижче. Рядок містить лише рядкові алфавіти , цифри та / або пробіли .
Еквівалент характеру
Тепер, по-перше, ви повинні знати, як знайти "еквівалент" кожного персонажа.
Якщо символ є приголосним, це спосіб знайти його рівнозначний:
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 "
Ви також можете використовувати великі літери замість малих літер.
Оцінка балів
Це код-гольф , тому найкоротший код виграє!