美文网首页
345. Reverse Vowels of a String

345. Reverse Vowels of a String

作者: jluemmmm | 来源:发表于2021-10-02 14:11 被阅读0次

    反转字符串中的元音字母。给一个字字符串s,仅反转字符串中的所有元音字母。

    元音字母包括 a,e,i,o,u,并且可能以大小写的形式出现。

    双指针

    使用两个指针 i 和 j 对字符串进行遍历,指针 i 初始时指向字符串的首位,j 指向字符串的末位,在遍历过程中,不停将 i 向右移动,直到指向一个元音字母,不停将 j 向左移动,直到 j 指向一个元音字母,如果 i < j,交换 i 和 j指向的元音字母,否则说明所有的元音字母均已经遍历过。

    • 时间复杂度 O(n),空间复杂福O(n)
    • Runtime: 100 ms, faster than 53.48%
    • Memory Usage: 44.6 MB, less than 60.14%
    /**
     * @param {string} s
     * @return {string}
     */
    var reverseVowels = function(s) {
      let left = 0;
      let right = s.length - 1;
      let len = s.length - 1;
      let arr = s.split('');
      while (left < right) {
        while (left < len && !isVowel(s[left])) {
          left++;
        }
        while (right > 0 && !isVowel(s[right])) {
          right--;
        }
        if (left < right) {
          swap(arr, left, right);
          left++;
          right--;
        }
      }
      return arr.join('');
    };
    
    var isVowel = function(ch) {
      return 'aeiouAEIOU'.indexOf(ch) > -1;
    }
    
    var swap = function(num, i, j) {
      let tmp = num[i];
      num[i] = num[j];
      num[j] = tmp;
    }
    

    相关文章

      网友评论

          本文标题:345. Reverse Vowels of a String

          本文链接:https://www.haomeiwen.com/subject/kpzpnltx.html