Leetcode345-反转字符串Ⅱ|刷题打卡

104 阅读1分钟

本文正在参与掘金团队号上线活动,点击 查看大厂春招职位

一、题目描述

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

示例 1 :

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

示例 2 :

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

二、思路分析

  1. 建立两个列表,res存放s中的所有字符tmp存放s中元音字符
  2. 遍历res,若存在元音字符,用tmp.pop()代替。

此时tmp的列表就类似,利用栈先入后出的特性,巧妙地将字符串中地元音字符给颠倒了次序。

三、AC 代码

class Solution:
    def reverseVowels(self, s: str) -> str:
        letter='aeiouAEIOU'
        res=[]
        tmp=[]
        for i in s:
            res.append(i)
            if i in letter:
                tmp.append(i)
        for i in range(len(res)):
            if res[i] in letter:
                res[i]=tmp.pop()
        return "".join(res)

输出为:

image.png

四、总结

该题可以巧妙地利用数据结构先入后出的特性进行解答的题目,解题时思路要宽,熟练利用几种数据结构的特性来解答题目。