LeetCode 345. 反轉字符串中的元音字母

題目:函數

  編寫一個函數,以字符串做爲輸入,反轉該字符串中的元音字母。spa

  示例1:指針

輸入: "hello"code

輸出: "holle"blog

  示例2:leetcode

輸入: "leetcode"字符串

輸出: "leotcede"class

思路:循環

  定義兩個指針,左指針從左向右掃描找到元音字母,右指針從右向左掃描找到元音字母,掃描過程當中判斷左指針是否小於右指針,不然退出循環,直接交換(這時左右指針相等)。di

代碼:

  

class P345{
    public String reverseVowels(String s) {
        if (s == null || s.length() < 2) {
            return s;
        }

        char[] arr = s.toCharArray();
        int left = 0;
        int right = arr.length - 1;
        char tmp;
     //外層循環
while (left < right) { while (left < right && !isVowels(arr[left])) { left++; } while (left < right && !isVowels(arr[right])) { right--; } tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; left++; right--; } return new String(arr); } private boolean isVowels(char ch) { return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' || ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U'; } }
相關文章
相關標籤/搜索