345. Reverse Vowels of a String (Easy) (https://leetcode.com/problems/reverse-vowels-of-a-string/)

Дана строка s, нужно перевернуть в ней только гласные буквы и вернуть результат. Гласные — это ‘a’, ‘e’, ‘i’, ‘o’ и ‘u’, они могут встречаться как в нижнем, так и в верхнем регистре, и более одного раза. Ограничения: 1 <= s.length <= 3 * 10^5, s состоит из печатаемых ASCII-символов.

function reverseVowels(s: string): string {
  const chars = s.split("")
  const vowels = "aeiouAEIOU"
 
  for (let left = 0, right = chars.length - 1; left < right;) {
    if (!vowels.includes(chars[left])) {
      left++
      continue
    }
 
    if (!vowels.includes(chars[right])) {
      right--
      continue
    }
 
    const temp = chars[left]
    chars[left] = chars[right]
    chars[right] = temp
 
    left++
    right--
  }
 
  return chars.join("")
}
 
// Локальная проверка:
console.log(reverseVowels("IceCreAm"))
console.log(reverseVowels("leetcode"))
Пример 1:
 
    Вход: s = "IceCreAm"
    Выход: "AceCreIm"
    Объяснение: гласные в s — ['I', 'e', 'e', 'A']. После переворота
    гласных s становится "AceCreIm".
 
Пример 2:
 
    Вход: s = "leetcode"
    Выход: "leotcede"

two-pointers 1768-merge-strings-alternately 392-is-subsequence leetcode