标签:evo reverse str ever return ++ oid 说明 碰撞
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello" 输出: "holle"
示例 2:
输入: "leetcode" 输出: "leotcede"
说明:
元音字母不包含字母"y"。
所谓的做题就是把以前背下来的拿过来改一下即可。双指针碰撞模型,之前已经描述过很多次了,此处不在赘述。
知道AEIOU是元音字母?左右指针所指向元素交换一下位置即可。
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;
    }
}
标签:evo reverse str ever return ++ oid 说明 碰撞
原文地址:https://www.cnblogs.com/MrSaver/p/9692909.html