LeetCode 0345.文字列反転した文字列のリバース母音は母音簡単[] [] [Pythonのダブルポインタ]
タイトル
入力として文字列を取る関数を書くと文字列の唯一の母音を逆転。
例1:
Input: "hello"
Output: "holle"
例2:
Input: "leetcode"
Output: "leotcede"
注:
母音は文字「Y」を含んでいません。
翻訳
入力として文字列への書き込み機能は、文字列に母音を反転しました。
例1:
输入: "hello"
输出: "holle"
例2:
输入: "leetcode"
输出: "leotcede"
説明:
母音は文字「Y」が含まれていません。
思考
ダブルポインタ
見つけるために、左から右に左ポインタ元音字母
を見つけるために、右から左へ、右ポインタ元音字母
。
文字列を考慮すると、変更することはできませんので、必要がlist
置き換えられます。
Pythonコード
class Solution(object):
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
left, right = 0, len(s)-1 # 同时赋值
vowels = 'aeiou'
string = list(s) # 字符串不能改变, 所以要转为 list
while left < right:
if string[left].lower() not in vowels: # lower 是取小写
left += 1
elif string[right].lower() not in vowels:
right -= 1
else:
string[left], string[right] = string[right], string[left]
left += 1
right -= 1
return ''.join(string) # 将 string 中的元素以指定的字符连接生成一个新的字符串