這題目標是給定一個字串,將字串中的所有母音字母(a、e、i、o、u 和它們的大寫形式 A、E、I、O、U)進行反轉,其他非母音字母的位置保持不變。
舉例來說,如果輸入字串為 "hello"
,那麼反轉後的字串應該是 "holle"
,因為字串中的母音 "e" 和 "o" 被交換了。
解題的核心想法是找出字串中的所有母音字母,並將它們進行反轉放回到原來的位置。具體步驟如下:
以下是解決這個問題的 Python 程式碼實現:
class Solution:
def reverseVowels(self, s: str) -> str:
VOWELS = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
appearedVowels = [letter for letter in s if letter in VOWELS]
result = ""
for letter in s:
if letter in VOWELS:
result += appearedVowels.pop(-1)
else:
result += letter
return result
VOWELS = "aeiouAEIOU"
)也可以。appearedVowels
中取出最後一個,這樣實現了反轉效果。這個解法的時間複雜度是 O(n),其中 n
是字串的長度。我們需要遍歷字串兩次:第一次提取母音,第二次構建結果字串。