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 -
sconsist 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)