首页 > 其他分享 >反转支付串中的元音字母

反转支付串中的元音字母

时间:2022-11-20 11:45:03浏览次数:44  
标签:arr right int 字母 元音 串中 left

反转字符串中的元音字母

一、题目描述

反转字符串中的元音字符,元音字母包含"a,e,i,o,u",其中也包含大写。
示例1

输入:s = "hello"
输出:"holle"

示例2

输入:s = "yellow"
输出:"yollew"

二、解题思路

反转元音字母,就是出现的第一个元音字母和最后一个元音字母调换位置,第二个和倒数第二个调换位置,依次类推所以就会想到双指针遍历。

三、解题方法

方法1(双指针)
在数组头有一个指针,数组尾有一个指针,当遇到元音字母时,指针停止移动,左右指针都停止时,也就是都指向元音字母时,交换两个字母即可。
代码实现:

class Solution {
    public String reverseVowels(String s) {

        int n = s.length();
        char[] arr = s.toCharArray();
        int left = 0;
        int right = n-1;

        while(right > left){

            while(right>0 && !isVowel(arr[right])){
                right--;
            }

            while(left<n && !isVowel(arr[left])){
                left++;
            }

            if(left < right){
                swap(arr,left,right);
                left++;
                right--;
            }
        }

        return new String(arr);

    }

    public boolean isVowel(char ch){
        return "aeiouAEIOU".indexOf(ch) >= 0;
    }

    public void swap (char[] arr,int left,int right){
        char pre;
        pre = arr[left];
        arr[left] = arr[right];
        arr[right] = pre;

    }
}

标签:arr,right,int,字母,元音,串中,left
From: https://www.cnblogs.com/zjjtt/p/16908131.html

相关文章