我在研究CoderByte的python问题。时间是很重要的,所以代码可能不是真正可读的,而是非常直接。我会对你的方法感兴趣的。我的代码适用于某些单词,但使用“句子”进行测试会得到不同的结果,即边说边调试。请评论我的想法!在
问题:
让函数LetterChanges(str)获取传递的str参数,并使用以下算法修改它。用字母表中紧跟其后的字母替换字符串中的每个字母(即c变为d,z变为a)。然后将这个新字符串(a,e,i,o,u)中的每个元音大写,最后返回这个修改过的字符串。使用下面框中的参数测试功能,使用不同的参数测试代码。不要修改代码中的函数名。不要将任何代码放在函数之外,使用return关键字从函数内返回答案。在
我的代码:
def LetterChanges(str):
a = map(chr, range(97, 123))
b = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
b.remove('a')
b.append('a')
c = dict(zip(a,b))
v = ['a', 'e', 'i', 'o', 'u']
k = str
for i in range(len(str)):
if str[i] in a:
k = k.replace(str[i], c[str[i]])
l = k
for i in range(len(k)):
if k[i] in v:
l = l.replace(k[i], k[i].upper())
print l
# this call is needed to test your function
# keep this when you submit your code
LetterChanges(str)
输出:
^{pr2}$
我将使用^{} 进行此操作,它可能如下所示:
示例:
^{pr2}$为了提高效率,我将把
table
的创建移到函数之外,这样它只计算一次,而不是每次函数调用。或者只需硬编码orig
和new
的结束值,如下所示:编辑:下面是一个应该使用coderbytes限制的版本:
只是另一个解决方案
你可以尝试一下:
相关问题 更多 >
编程相关推荐