擅长:python、mysql、java
<p>我为edge case定义了两个字典,元音字典和一个字母x/y/z字典来实现包装。我遍历了字符串,如果这个字符是一个特殊的字符,我就使用适当的字典来查找这个单词。但是,如果字符在“w”以下,而不是元音,我只需在其<code>ord</code>值(ASCII值)中添加4,并将其转换为char。你知道吗</p>
<pre><code>def transform(input):
return_string = ""
vowel_dictionary = {
'a': 'e',
'e': 'i',
'i': 'o',
'o': 'u',
'u': 'a'
}
edge_dictionary = {
'x': 'b',
'y': 'c',
'z': 'd'
}
for character in input.lower():
if character in vowel_dictionary:
return_string += vowel_dictionary[character]
elif ord(character) <= ord("v"):
return_string += chr(ord(character) + 4)
else :
return_string += edge_dictionary[character]
return return_string
</code></pre>
<p>我已经用上面的代码运行了一些测试:</p>
<p><strong>测试</p>
<pre><code>transform("hello") # => lippu
transform("today") # => xuhec
transform("yesterday") # => ciwxivhec
</code></pre>