您的位置:首页 > 其它

leetcode345

2016-06-01 13:49 435 查看
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()正好是从最后一位开始的 这样就实现的逆序。*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode