# 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) ```
{}