0345. 反转字符串中的元音字母

0345. 反转字符串中的元音字母 #

  • 标签:字符串
  • 难度:简单

题目大意 #

给定一个字符串 s,将字符串中的元音字母进行反转。

解题思路 #

因为 Python 的字符串是不可变的,所以我们先将字符串转为数组。 然后利用两个指针 left,right。一个从左到右移动查找元音字母,一个从右到左查找元音字母。如果都找到了,则交换字符,然后继续进行查找。直到两个指针指向相同位置时停止。最后返回对应的字符串即可。

代码 #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class Solution:
    def reverseVowels(self, s: str) -> str:
        vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
        left = 0
        right = len(s)-1
        s_list = list(s)
        while left < right:
            if s_list[left] not in vowels:
                left += 1
                continue
            if s_list[right] not in vowels:
                right -= 1
                continue
            s_list[left], s_list[right] = s_list[right], s_list[left]
            left += 1
            right -= 1
        return "".join(s_list)
本站总访问量  次  |  您是本站第  位访问者