El pensamiento de clasificación rápida con algoritmo invierte las vocales en las cuerdas

Algoritmo: clasificación rápida de ideas para invertir las vocales en una cadena

Invierte las vocales en la cuerda

345. Vocales inversas en una cadena

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

示例 1:

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

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

Todo el mundo conoce la cola rápida, así que no diré mucho, la ontología parece no tener nada que ver con la cola rápida, pero de hecho es bastante relevante.
La fila rápida selecciona el yuan pivote como condición de intercambio, y también podemos usar la letra vocal como condición de intercambio.

    public String reverseVowels(String s) {
        if(s==null||s.length()<2){
            return s;
        }
        char cs[]=s.toCharArray();
        quickSwap(cs,0,cs.length-1);
        return new String(cs);
    }

    public void quickSwap(char[] cs,int left,int right){
        while(left<right){
            while(left<right&&!suit(cs[right])){
                right--;
            }
            while(left<right&&!suit(cs[left])){
                left++;
            }
            if(left<right){
                swap(cs,left,right);
            }
            left++;
            right--;
        }
    }

    private boolean suit(char c){
        return c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='A'||c=='E'||c=='I'||c=='O'||c=='U';
    }

    private void swap(char[] cs,int i,int j){
        char temp=cs[i];
        cs[i]=cs[j];
        cs[j]=temp;
    }

Supongo que te gusta

Origin blog.csdn.net/qq_23594799/article/details/105463157
Recomendado
Clasificación