Given a string s
, reverse only all the vowels in the string and return it.
The vowels are 'a'
, 'e'
, 'i'
, 'o'
, and 'u'
, and they can appear in both cases.
Example 1:
Input: s = "hello"
Output: "holle"
Example 2:
Input: s = "leetcode"
Output: "leotcede"
Constraints:
-
1 <= s.length <= 3 * 105
-
s
consist of printable ASCII characters.
SOLUTION:
class Solution:
def reverseVowels(self, s: str) -> str:
n = len(s)
vows = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
stack = []
s = [c for c in s]
for i in range(n):
if s[i] in vows:
stack.append(s[i])
s[i] = -1
for i in range(n):
if s[i] == -1:
s[i] = stack.pop()
return "".join(s)
Top comments (0)