反转字符串中的元音字母

    技术2022-07-10  150

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

    示例 1:

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

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

    //思路:双指针,写一个字符类型的交换函数,写一个判断是否元音字母的函数,双指针判断和交换。

    class Solution {

        public String reverseVowels(String s) {

            int p1 = 0;

            char[] array = s.toCharArray();

            int p2 = array.length - 1;

            while((p1 < p2) && (p1 < array.length)){

               if(isYuanYin(array[p1]) && isYuanYin(array[p2])){

                   swap(array, p1++, p2--);

               }else if(isYuanYin(array[p1]) && !isYuanYin(array[p2])){

                   p2--;

               }else if(!isYuanYin(array[p1]) && isYuanYin(array[p2])){

                   p1++;

               }else{

                   p1++;

                   p2--;

               }

            }

            return new String(array);

        }    

        public void swap(char[] x, int a, int b){

            char tmp = x[a];

            x[a] = x[b];

            x[b] = tmp;

        }

        public boolean isYuanYin(char ch){

            return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u'

                    ||ch=='A'|| ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U';

        }            

    }

    Processed: 0.110, SQL: 9