The Reverse Vowels of a String solutions are below.
15 Jun 2024•Easy•C++ / Python / TypeScript
Reverse Vowels of a String
C++, Python and TypeScript solutions for Reverse Vowels of a String.
Solution files
Python•reverse-vowels-of-a-string/synced-solution.py
def reverseVowels(s):
vowels = set('aeiouAEIOU')
s_list = list(s)
left, right = 0, len(s_list) - 1
while left < right:
while left < right and s_list[left] not in vowels:
left += 1
while left < right and s_list[right] not in vowels:
right -= 1
s_list[left], s_list[right] = s_list[right], s_list[left]
left += 1
right -= 1
return ''.join(s_list)
C++•reverse-vowels-of-a-string/synced-solution.cpp
class Solution {
public:
string reverseVowels(string s) {
string vowels = "aeiouAEIOU";
int left = 0, right = s.size() - 1;
while (left < right) {
while (left < right && vowels.find(s[left]) == string::npos) {
left++;
}
while (left < right && vowels.find(s[right]) == string::npos) {
right--;
}
swap(s[left], s[right]);
left++;
right--;
}
return s;
}
};
TypeScript•reverse-vowels-of-a-string/synced-solution.ts
function reverseVowels(s: string): string {
const vowels = new Set('aeiouAEIOU');
const arr = s.split('');
let left = 0, right = arr.length - 1;
while (left < right) {
while (left < right && !vowels.has(arr[left])) {
left++;
}
while (left < right && !vowels.has(arr[right])) {
right--;
}
[arr[left], arr[right]] = [arr[right], arr[left]];
left++;
right--;
}
return arr.join('');
}