Reverse Vowels of a String

LeetCode題目: 345. Reverse Vowels of a String

My solution:

/**
 * @param {string} s
 * @return {string}
 */
let reverseVowels = s => {
    if(s.length < 1 || s.length > 3*Math.pow(10,5)) return 'string length has error';
    const vowels = ['a','e','i','o','u'];
    let tmp = '', stringArray = Array.from(s), left = 0, right = s.length - 1;
    while(left < right) {
        if(vowels.includes(stringArray[left].toLowerCase())) {
            if(vowels.includes(stringArray[right].toLowerCase())) {
                tmp = stringArray[left];
                stringArray[left] = stringArray[right];
                stringArray[right] = tmp;
                left++;
                right--;
            }else {
                right--;
            }
        }else {
            left++;
        }
    }
    return stringArray.join('');
};
profile-image
Hi, 我是 Zeki。目前為一名前端工程師。我相信科技始終來自於人性,是用來幫助人們過上更有品質的生活的,但願也希望如此。