LeetCode-Python-345. 文字列の母音文字を反転

1227 ワード

文字列を入力として関数を作成し、文字列のアクセント文字を反転します.
例1:
  : "hello"
  : "holle"

例2:
  : "leetcode"
  : "leotcede"

説明:アクセントアルファベットにはアルファベット「y」は含まれていません.
考え方:
両指針法は、左右の2つの母音アルファベットを指し、交換すればよい.
この問題は、文字列に要素を個別に割り当てることはできません.文字列をlistに変換し、最後に戻るとlistを文字列に変換する必要があります.
class Solution(object):
    def reverseVowels(self, s):
        """
        :type s: str
        :rtype: str
        """
        l = len(s)
        s = [char for char in s]
        vowel = ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"]
        left = 0
        right = l - 1
        while(left < right):
            while(left <= l -1 and s[left] not in vowel):
                left += 1
            while(right >= 0 and s[right] not in vowel):
                right -= 1
            if left < right and s[left] != s[right]:
                s[left], s[right] = s[right], s[left]
            left += 1
            right -= 1
        return "".join(s)