2785. Sort Vowels in a String

Difficulty:
Related Topics:
Similar Questions:

Problem

Given a 0-indexed string s, permute s to get a new string t such that:

Return the resulting string.

The vowels are 'a', 'e', 'i', 'o', and 'u', and they can appear in lowercase or uppercase. Consonants comprise all letters that are not vowels.

  Example 1:

Input: s = "lEetcOde"
Output: "lEOtcede"
Explanation: 'E', 'O', and 'e' are the vowels in s; 'l', 't', 'c', and 'd' are all consonants. The vowels are sorted according to their ASCII values, and the consonants remain in the same places.

Example 2:

Input: s = "lYmpH"
Output: "lYmpH"
Explanation: There are no vowels in s (all characters in s are consonants), so we return "lYmpH".

  Constraints:

Solution

/**
 * @param {string} s
 * @return {string}
 */
var sortVowels = function(s) {
    var vowels = s.split('')
        .filter(isVowels)
        .sort((a, b) => a.charCodeAt(0) - b.charCodeAt(0));
    var res = '';
    var index = 0;
    for (var i = 0; i < s.length; i++) {
        if (isVowels(s[i])) {
            res += vowels[index++];
        } else {
            res += s[i];
        }
    }
    return res;
};

var isVowels = function(char) {
    var chars = ['a', 'e', 'i', 'o', 'u'];
    return chars.includes(char.toLowerCase()) || chars.includes(char.toUpperCase());
};

Explain:

nope.

Complexity: