LeetCode 345. Reverse Vowels of a String

題目

Write a function that takes a string as input and reverse only the vowels of a string.

Example 1: Given s = "hello", return "holle".

Example 2: Given s = "leetcode", return "leotcede".

Note: The vowels does not include the letter "y".

翻譯

給一個英文字串,將裡面的母音字母反轉。

範例1:
Given s = "hello", return "holle".

範例2:
Given s = "leetcode", return "leotcede".

注意: y不算在母音字母中。

思路

  1. 先將字串中的母音儲存在array
  2. 重新搜索字串中的母音,將array理面的字元依相反順序取代字串中的母音

解題

/**
 * @param {string} s
 * @return {string}
 */
var reverseVowels = function(s) {

    var vowels = [];  // 儲存找到的母音

    // 找母音
    for(var i = 0 ; i< s.length ; i++){
        if((/^[aeiou]$/i).test(s[i])){
            vowels.push(s[i]);
        }    
    }

    var v = vowels.length - 1;
    // 因為之前是用array儲存找到的母音,所以把本來的字串也轉成array
    var sAry = s.split("");

    // 用之前找到的array取代母音
    for(var j = 0 ; j < sAry.length ; j++){
        if((/^[aeiou]$/i).test(sAry[j])){
            sAry[j] = vowels[v--];
        }    
    }

    return sAry.join("");
};

results matching ""

    No results matching ""