本文正在参与掘金团队号上线活动,点击 查看大厂春招职位
一、题目描述
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1 :
输入:"hello"
输出:"holle"
示例 2 :
输入:"leetcode"
输出:"leotcede"
二、思路分析
- 建立两个列表,
res存放s中的所有字符,tmp存放s中元音字符。 - 遍历
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)
输出为:
四、总结
该题可以巧妙地利用数据结构栈的先入后出的特性进行解答的题目,解题时思路要宽,熟练利用几种数据结构的特性来解答题目。