LeetCode 345. Reverse Vowels of a String

Posted Cheng~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 345. Reverse Vowels of a String相关的知识,希望对你有一定的参考价值。

345. Reverse Vowels of a String(反转字符串中的元音字母)

链接

https://leetcode-cn.com/problems/reverse-vowels-of-a-string

题目

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

示例 1:

输入: "hello"
输出: "holle"
示例 2:

输入: "leetcode"
输出: "leotcede"
说明:
元音字母不包含字母"y"。

思路

也是双指针,不过要注意大小写都可以,所以额外增加了一个判断函数判断是否需要反转,别的和344题基本相同。

代码

  public static boolean find(char c) {
    return !(c == 'a' || c == 'o' || c == 'e' || c == 'i' || c == 'u' || c == 'A' || c == 'O'
        || c == 'E' || c == 'I' || c == 'U');
  }

  public static String reverseVowels(String s) {
    char[] arr = s.toCharArray();
    int left = 0, right = arr.length - 1;
    while (left < right) {
      while (left < arr.length && find(arr[left])) {
        left++;
      }
      while (right >= 0 && find(arr[right])) {
        right--;
      }
      if (left >= right) {
        break;
      }
      char temp = arr[right];
      arr[right--] = arr[left];
      arr[left++] = temp;
    }
    String result = new String(arr);
    return result;
  }

以上是关于LeetCode 345. Reverse Vowels of a String的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode #345 Reverse Vowels of a String

LeetCode 345. Reverse Vowels of a String

Leetcode 345. Reverse Vowels of a String

LeetCode_345. Reverse Vowels of a String

[LeetCode]345 Reverse Vowels of a String

leetcode 345. Reverse Vowels of a String