【发布时间】:2019-12-05 02:27:28
【问题描述】:
处理一个要求我们创建一个函数,其中字符串中的所有元音都被反转的家庭作业问题。例如:This Is So Fun 将返回 Thus Os Si Fin。只是无法弄清楚如何让函数检测大写字母的位置,将它们转换为小写字母,反之亦然。现在函数输出Thus os SI Fin
def f(word):
vowels = "aeiouAEIOU"
string = list(word)
i = 0
j = len(word)-1
while i < j:
if string[i].lower() not in vowels:
i += 1
elif string[j].lower() not in vowels:
j -= 1
else:
string[i], string[j] = string[j], string[i]
i += 1
j -= 1
return "".join(string)
【问题讨论】:
-
所以在“This Is So Fun”的例子中,元音是 (i,I,o,u)。不想触摸它周围的任何字母,但我希望它们以相反的顺序放回(u,o,I,i)。问题是我不知道如何把它们放回去,所以它们在需要的地方是大写的,在需要的地方是小写的。
-
一个简单的解决方案是检查最后的字符串并检测是否有任何元音紧跟在空格后面。如果是,则转换为大写,如果不是,则转换为小写。