LeetCode-反転文字列の母音文字(JavaScript)


入力として文字列を作成し、文字列の母音文字を反転します.
例1:
  : "hello"
  : "holle"
例2:
  : "leetcode"
  : "leotcede"
説明:母音文字にはアルファベット「y」は含まれていません.
考え方:
典型的な二重針――突き合わせ針の解法.二つのポインタを設定して、一つの端と一つの端を交互に動かします.
i:ヘッドポインタ、j:テールポインタ.
文字が母音文字かどうかを判断し、正規表現を採用します.正規表現の詳細な使い方は、正規表現の用法大全をご覧ください.
JavaScript        :

let reg = /[aeiouAEIOU]/
//  /.../         ,         
//                 

reg.test('a')    // true

reg.test('c')    // false
i<jの場合、ループ:
iの要素は母音文字かどうかを判断する.もしそうでなければ、i++です.
判断j  上の要素は母音文字ですか?もしそうでないなら、j--です.
i,j上の要素が等しいかどうかを判断し、待たなければ、i,j上の要素を交換する.(注意:文字列は変更できません.文字列を配列に変換することもできます.また、sliceで文字列スライスを新しい文字列に組み立てることもできます.)
iとjを移動します
/**
 * @param {string} s
 * @return {string}
 */
var reverseVowels = function(s) {
  let i = 0,
      j = s.length-1,
      reg = /[aeiouAEIOU]/,
      str = s
  while (i < j) {
    if (!reg.test(s[i])) {
      i ++;
      continue;
    }
    if (!reg.test(s[j])) {
      j--;
      continue;
    }
    if (s[i] !== s[j]) {
      str = str.slice(0,i) + s[j] + str.slice(i+1,j) + s[i] + str.slice(j+1)
    }
    i++
    j--
  }
  return str
};