1. 程式人生 > >leetcode Reverse String

leetcode Reverse String

leetcode Reverse String

解題思路:兩個指標,一個從前到後,一個從後到前,兩邊找到母音字母交換。

package com.algorithm.leetcode.twomonth;

public class test55 {
    public static void main(String[] args) {
        String str="hello";
        String s = reverseVowels(str);
        System.out.println(s);
    }
    public static String reverseVowels(String s) {
        int left=0;
        int right=s.length()-1;
        char[] chars = s.toCharArray();
        while(left<right){
            while(left<right&&!isYuanyin(chars[left])){
                left++;
            }
            while(left<right&&!isYuanyin(chars[right])){
                right--;
            }
            if(left<right){
                swap(chars,left,right);
                left++;
                right--;
            }
        }

        return new String(chars);

    }

    public static void swap(char[] chars,int i,int j){
        char temp;
        temp=chars[i];
        chars[i]=chars[j];
        chars[j]=temp;

    }
    public static  boolean isYuanyin(Character c){
        if(c=='a' ||  c=='e' || c=='i' || c=='o' || c=='u' || c=='A' || c=='E' || c=='I' || c=='O' || c=='U'){
            return true;
        }else{
            return false;
        }
    }
}