345. Reverse Vowels of a String
Description
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 lower and upper cases, more than once.
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 from others
// using two pointers
/**
* @param {string} s
* @return {string}
*/
var reverseVowels = function (s) {
const vowels = 'aeiouAEIOU';
let left = 0;
let right = s.length - 1;
let arr = s.split('');
while (left < right) {
// find the vowels from the left
if (!vowels.includes(arr[left])) {
left++;
continue;
}
// find the vowels from the right
if (!vowels.includes(arr[right])) {
right--;
continue;
}
// swap the vowels using destructuring assignment
[arr[left], arr[right]] = [arr[right], arr[left]];
left++;
right--;
}
return arr.join('');
}