# 345. Reverse Vowels of a String [easy] (Python)

## 题目链接

https://leetcode.com/problems/reverse-vowels-of-a-string/

## 题目原文

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
"""
res = list(s)
vowels = []
for i in xrange(len(res)):
if res[i] in ['a', 'o', 'e', 'i', 'u', 'A', 'O', 'E', 'I', 'U']:
vowels.append((i, res[i]))
for j in xrange(len(vowels)/2):
res[vowels[j][0]] = vowels[len(vowels)-j-1][1]
res[vowels[len(vowels)-j-1][0]] = vowels[j][1]
return ''.join(res)

### 思路二

class Solution(object):
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
vowels = re.findall('(?i)[aeiou]', s)
return re.sub('(?i)[aeiou]', lambda m: vowels.pop(), s)

### 思路三

class Solution(object):
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
vowels = {'a': True, 'o': True, 'e': True, 'i': True, 'u': True, 'A': True, 'O': True, 'E': True, 'I': True, 'U': True}
res = list(s)
pos = []
for i in xrange(len(res)):
if res[i] in vowels:
pos.append((i, res[i]))
for j in xrange(len(pos)/2):
res[pos[j][0]] = pos[len(pos)-j-1][1]
res[pos[len(pos)-j-1][0]] = pos[j][1]
return ''.join(res)

PS: 新手刷LeetCode，新手写博客，写错了或者写的不清楚还请帮忙指出，谢谢！

## 【LeetCode】345. Reverse Vowels of a String 解题报告

• crazy1235
• 2016年05月16日 23:57
• 6841

## LeetCode345—Reverse Vowels of a String

LeetCode345—Reverse Vowels of a String
• zhangxiao93
• 2016年04月28日 15:39
• 751

## [LeetCode] Reverse Vowels of a String Python 题解

Reverse Vowels of a String """ Write a function that takes a string as input and reverse only ...
• qs9816
• 2016年08月10日 06:23
• 203

## 345. Reverse Vowels of a String

Write a function that takes a string as input and reverse only the vowels of a string. Example 1:...
• yangquanhui1991
• 2016年05月23日 16:44
• 212

## 345. Reverse Vowels of a String [easy] (Python)

• coder_orz
• 2016年06月01日 14:10
• 1513

## 【LeetCode】345 Reverse Vowels of a String（java）

• styshoo
• 2016年05月04日 16:15
• 2193

## leetcode 345. Reverse Vowels of a String [EASY]

Write a function that takes a string as input and reverse only the vowels of a string. Example 1:...
• baidu_37640890
• 2017年02月27日 21:50
• 21

## Reverse Vowels of a String

Write a function that takes a string as input and reverse only the vowels of a string. Example 1:...
• awawfwfw
• 2016年10月31日 05:47
• 133

## Reverse Vowels of a String

Write a function that takes a string as input and reverse only the vowels of a string. Example 1:...
• gina0613
• 2016年06月13日 01:27
• 41

## leetcode_345 Reverse Vowels of a String

• yzhang6_10
• 2016年05月12日 21:04
• 1563

举报原因： 您举报文章：345. Reverse Vowels of a String [easy] (Python) 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)