# Leetcode No.345
**[題目連結](https://leetcode.com/problems/reverse-vowels-of-a-string/)**
## Python
```python=
class Solution:
def reverseVowels(self, s: str) -> str:
s_list = list(s)
pos = []
for index,letter in enumerate(s_list):
if letter in ["a","e","i","o","u","A","E","I","O","U"]:
pos.append(index)
for i in range(len(pos)//2):
s_list[pos[i]], s_list[pos[-1-i]] = s_list[pos[-1-i]], s_list[pos[i]]
return "".join(s_list)
```
[別人寫的]Two Pointers
```python=
class Solution:
def reverseVowels(self, s: str) -> str:
ss = list(s)
left = 0
right = len(ss) - 1
vowels = {'a' , 'e' ,'o' , 'i' , 'u' , 'A', 'E', 'I', 'O', 'U'}
while left < right:
if ss[left] in vowels and ss[right] in vowels:
ss[left], ss[right] = ss[right], ss[left]
left += 1
right -= 1
elif ss[left] in vowels:
right -= 1
else:
left += 1
return "".join(ss)
```