easy,345
*Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = “hello”, return “holle”.
Example 2:
Given s = “leetcode”, return “leotcede”.*
自己是这样写的:
class Solution(object):
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
blist=[]
for str in s:
if str in ['a','e','i','o','u','A','E','I','O','U']:
blist.append(str)
blist.reverse()
num=0
alist=list(s)
for j in range(len(alist)):
if alist[j] in ['a','e','i','o','u','A','E','I','O','U']:
alist[j]=blist[num]
num=num+1
news=''.join(alist)
return news
在Discuss上看到一个想法很好的:
class Solution(object):
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
vovels=[]
index=[]
l=list(s)
for i in range(len(l)):
if l[i] in 'aeiouAEIOU':
index.append(i)
vovels.append(l[i])
for i in index:
l[i] = vovels.pop()
return ''.join(l)
*这种方法巧妙在:将元音的索引保存在一个数组中,这样就不用像我的方法一样,当要换元素时还要再遍历一遍,还有比较巧妙的事pop()正好是从最后一位开始的 这样就实现的逆序。*