【题目】
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
【示例 1】
输入:“hello”
输出:“holle”
【示例 2】
输入:“leetcode”
输出:“leotcede”
【提示】
元音字母不包含字母 “y” 。
【代码】
【Python】
class Solution:
def reverseVowels(self, s: str) -> str:
s_list=list(s)
s=s[::-1]
yuanyin=[]
for x in s:
if x in "aeiuoAEIOU":
yuanyin.append(x)
yuanyinstr="".join(yuanyin)
cnt=0
for i in range(len(s)):
if s_list[i] in "aeiuoAEIOU":
s_list[i]=yuanyinstr[cnt]
cnt+=1
return "".join(s_list)
【一次遍历】
class Solution:
def reverseVowels(self, s: str) -> str:
dic = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
lst = list(s)
n = len(s)
l, r = 0, n - 1
while l < r:
if lst[l] in dic and lst[r] in dic:
lst[l], lst[r] = lst[r], lst[l]
l = l + 1
r = r - 1
elif lst[l] not in dic and lst[r] not in dic:
l = l + 1
r = r - 1
elif lst[l] not in dic:
l = l + 1
elif lst[r] not in dic:
r = r - 1
return ''.join(lst)