1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
var reverseVowels = function (s) { s = s.split('');
const baseMap = new Map([ ['a', 'a'], ['e', 'e'], ['i', 'i'], ['o', 'o'], ['u', 'u'], ]); let [left, right] = [0, s.length - 1];
while (left <= right) { if (baseMap.has(s[left].toLowerCase()) && baseMap.has(s[right].toLowerCase())) { [s[left], s[right]] = [s[right], s[left]]; left++; right--; } else if (baseMap.has(s[left].toLowerCase()) && !baseMap.has(s[right].toLowerCase())) { right--; } else if (!baseMap.has(s[left].toLowerCase()) && baseMap.has(s[right].toLowerCase())) { left++; } else { left++; right--; } }
return s.join(''); };
|