LeetCode-python 345.反转字符串中的元音字母

题目链接
难度:简单       类型: 字符串


编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

示例1

输入: "hello"
输出: "holle"

示例2

输入: "leetcode"
输出: "leotcede"

解题思路


双指针
一个指针p1从前往后走,另一个指针p2从后往前走
当两个指针都指向元音字母时,交换两元素位置
当p1未指向元音字母时,p1++
当p2未指向元音字母时,p2--

由于字符串是不可变类型,可以将字符串变成list,容易实现交换,最后用join拼接

代码实现

class Solution(object):
    def reverseVowels(self, s):
        vowels = {'a','e','i','o','u','A','E','I','O','U'}
        s = list(s)
        p1, p2 = 0, len(s) - 1
        while p1 < p2:
            if s[p1] in vowels and s[p2] in vowels:
                s[p1], s[p2] = s[p2], s[p1]
                p1 += 1
                p2 -= 1
            if s[p1] not in vowels:
                p1 += 1
            if s[p2] not in vowels:
                p2 -= 1
        return ''.join(s)

本文链接:https://www.jianshu.com/p/b63cc8d950fd

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容