题目:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
解题思路:
元音字母:‘a’,‘e’,‘i’,‘o’,‘u’,‘A’,‘E’,‘I’,‘O’,‘U’
要实现头尾元音字母反转,同时从列表头和尾开始遍历,直至i和j相遇。
(1)仅当头和尾同时遇到元音字母时,实现反转,且头尾指针都变化1
(2)若有一侧为元音字母,另一侧为普通字母,则元音字母的指针不变,普通字母指针变化1
代码实现:
class Solution:
def reverseVowels(self, s: str) -> str:
ylist = ['a','e','i','o','u','A','E','I','O','U']
i = 0
j = len(s) - 1
list2 = list(s)
while i < j:
if list2[i] in ylist and list2[j] in ylist:
list2[i], list2[j] = list2[j], list2[i]
i = i + 1
j = j - 1
elif list2[i] not in ylist:
i = i + 1
elif list2[j] not in ylist:
j = j - 1
return ''.join(list2)