Python•reverse-vowels-of-a-string/synced-solution.py
def reverseVowels(s):
vowels = set(class="syntax-string">'aeiouAEIOU')
s_list = list(s)
left, right = class="syntax-number">0, len(s_list) - class="syntax-number">1
while left < right:
while left < right and s_list[left] not in vowels:
left += class="syntax-number">1
while left < right and s_list[right] not in vowels:
right -= class="syntax-number">1
s_list[left], s_list[right] = s_list[right], s_list[left]
left += class="syntax-number">1
right -= class="syntax-number">1
return class="syntax-string">''.join(s_list)
C++•reverse-vowels-of-a-string/synced-solution.cpp
class Solution {
public:
string reverseVowels(string s) {
string vowels = class="syntax-string">"aeiouAEIOU";
int left = class="syntax-number">0, right = s.size() - class="syntax-number">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(class="syntax-string">'aeiouAEIOU');
const arr = s.split(class="syntax-string">'');
let left = class="syntax-number">0, right = arr.length - class="syntax-number">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(class="syntax-string">'');
}