写一个函数,反转一个字符串中的元音字母
Example 1:
Given s = "hello", return "holle".Example 2:
Given s = "leetcode", return "leotcede".
注意:
元音字母不包括y
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
sStr = list(s)
voList = ['a', 'A', 'e', "E", 'i', "I", 'o', 'O', 'u', 'U']
voAddress = []
for i, j in enumerate(sStr):
if j in voList:
voAddress.append((i, j))
for i, j in enumerate(voAddress):
sStr[j[0]] = voAddress[len(voAddress) - i -1][1]
return "".join(sStr)
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
sStr = list(s)
voList = ['a', 'A', 'e', "E", 'i', "I", 'o', 'O', 'u', 'U']
front = 0
length = len(sStr)
back = length - 1
while front < back:
while front < length and sStr[front] not in voList:
front += 1
while back >= 0 and sStr[back] not in voList:
back -= 1
if front < back:
sStr[front], sStr[back] = sStr[back], sStr[front]
front += 1
back -= 1
return "".join(sStr)
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
sStr = list(s)
# voList = ['a', 'A', 'e', "E", 'i', "I", 'o', 'O', 'u', 'U']
# voList = "aAeEiIoOuU" #比dic字典的效果差一丢丢
# voList = set(('a', 'A', 'e', "E", 'i', "I", 'o', 'O', 'u', 'U')) #与dic效果差不多
# voList = ('a', 'A', 'e', "E", 'i', "I", 'o', 'O', 'u', 'U') #与列表的效果差不多
voList = {'a':0, 'A':0, 'e':0, "E":0, 'i':0, "I":0, 'o':0, 'O':0, 'u':0, 'U':0}
front = 0
length = len(sStr)
back = length - 1
while front < back:
while front < length and sStr[front] not in voList:
front += 1
while back >= 0 and sStr[back] not in voList:
back -= 1
if front < back:
sStr[front], sStr[back] = sStr[back], sStr[front]
front += 1
back -= 1
return "".join(sStr)
算法题来自:https://leetcode-cn.com/problems/reverse-vowels-of-a-string/description/