挑战
挑战在于使用以下指定的规则对给定的字符串进行加密。该字符串将仅包含小写字母,数字和/或空格。
等效字符
现在,首先,您将需要知道如何查找每个字符的“等效”字符。
如果字符是辅音,则可以通过以下方法找到它的等价物:
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 "
您也可以选择使用大写字母而不是小写字母。
计分
这是代码高尔夫球,因此最短的代码获胜!