给你一个字符串 s
,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 'a'
、'e'
、'i'
、'o'
、'u'
,且可能以大小写两种形式出现。
例:
输入:s = "hello" 输出:"holle"
解析:
字符串中只有元音字母受到条件约束,所以我们只需要将元音字母进行存储,然后将字符串的元音字母进行反向替换即可,满足先进后出这个条件的首先想到的就是栈了。
class Solution(object):
def reverseVowels(self, s):
"""
:type s: str
:rtype: str
"""
stack = [] # 创建栈
for i in s: # 对元音字母进行存储
if i in 'aeiouAEIOU':
stack.append(i)
res = '' #结果字符串
for j in s:
if j not in 'aeiouAEIOU': # 不是元音字母直接复制
res += j
else:
res += stack.pop() # 是元音字母则反向替换
return res