LeetCode:反转字符串中的元音字母【345】

LeetCode:反转字符串中的元音字母【345】

题目描述

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

示例 1:

输入: "hello"
输出: "holle"

示例 2:

输入: "leetcode"
输出: "leotcede"

说明:
元音字母不包含字母"y"。

题目分析

  所谓的做题就是把以前背下来的拿过来改一下即可。双指针碰撞模型,之前已经描述过很多次了,此处不在赘述。

  知道AEIOU是元音字母?左右指针所指向元素交换一下位置即可

Java题解

class Solution {
    public String reverseVowels(String s) {
        char[] arr = s.toCharArray();
        int left =0;
        int right =arr.length-1;
        
        while(left<right)
        {
            while(!isYuanYin(s.charAt(left))&&left<right)
                left++;
            while(!isYuanYin(s.charAt(right))&&left<right)
                right--;
            swap(left,right,arr);
            left++;right--;
        }
        return new String(arr);
        
    }
    
    public boolean isYuanYin(char c)
    {
        if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u')
            return true;
        if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U')
            return true;
        return false;
    }
    
    public void swap(int i,int j,char[] arr)
    {
        char tmp = arr[i];
        arr[i] =arr[j];
        arr[j]=tmp;
    }
}

  

原文地址:https://www.cnblogs.com/MrSaver/p/9692909.html