leetcode之Reverse Vowels of a String(345)

题目:

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

示例 1:
给定 s = "hello", 返回 "holle".

示例 2:
给定 s = "leetcode", 返回 "leotcede".

注意:
元音字母不包括 "y".

python代码1:

class Solution:
    def reverseVowels(self, s):
        res = list(s)
        vowels = []
        for i in range(len(res)):
            if res[i] in ['a', 'o', 'e', 'i', 'u', 'A', 'O', 'E', 'I', 'U']:
                vowels.append((i, res[i]))
        for j in range(len(vowels)//2):
            res[vowels[j][0]] = vowels[len(vowels)-j-1][1]
            res[vowels[len(vowels)-j-1][0]] = vowels[j][1]
        return ''.join(res)

python代码2:

class Solution(object):
    def reverseVowels(self, s):
        res = []
        vowels_list = ['a', 'o', 'e', 'i', 'u', 'A', 'O', 'E', 'I', 'U']
        vowels = [i for i in s if i in vowels_list]
        for i in s:
            if i in vowels_list:
                res.append(vowels.pop())
            else:
                res.append(i)
        return ''.join(res)

心得:如果碰到['h', 'e', 'l', 'l', 'o'],想把它变成‘hello’,可以使用''.join(['h', 'e', 'l', 'l', 'o'])。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值