La pensée de tri rapide par algorithme inverse les voyelles dans les chaînes

Algorithme - Tri rapide des idées pour inverser les voyelles dans une chaîne

Inversez les voyelles dans la chaîne

345. Inverser les voyelles dans une chaîne

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

示例 1:

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

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

Tout le monde connaît le tri rapide, donc je ne dirai pas grand-chose, le corps principal semble n'avoir rien à voir avec le tri rapide, mais en fait, il est assez pertinent.
Quick row sélectionne le yuan pivot comme condition d'échange, et nous pouvons également utiliser la lettre voyelle comme condition d'échange.

    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;
    }

Je suppose que tu aimes

Origine blog.csdn.net/qq_23594799/article/details/105463157
conseillé
Classement