78.反转字符串中的元音字母

50 阅读1分钟

javascript解法:

// 双指针:我们可以使用两个指针 ii 和 jj 对字符串相向地进行遍历。

// 具体地,指针 i 初始时指向字符串 s 的首位,指针 j 初始时指向字符串 s 的末位。在遍历的过程中,我们不停地将 i 向右移动,直到 i 指向一个元音字母(或者超出字符串的边界范围);同时,我们不停地将 j 向左移动,直到 j 指向一个元音字母。此时,如果 i<j,那么我们交换 i 和 j 指向的元音字母,否则说明所有的元音字母均已遍历过,就可以退出遍历的过程

function reverseLetter(s){
    const demo = 'aeiouAEIOU';
    let i = 0, j = s.length-1;
    s = s.split('');// 必须要转成数组
    while(i<j){
        if(demo.indexOf(s[i]) == -1){
            i++
        }
        if(demo.indexOf(s[j]) == -1){
           j--
        }

        [s[i],s[j]] = [s[j],s[i]];
        i++;
        j--
    }

    return s.join('');
}