BiruLyu
7/29/2017 - 9:11 PM

345. Reverse Vowels of a String(#).java

public class Solution {
    public String reverseVowels(String s) {
        if (s == null || s.length() <= 1) return s;
        String vowels = "aeiouAEIOU";
        char[] str = s.toCharArray();
        int i = 0, j = str.length - 1;
        while (i < j) {
            while (i < str.length && vowels.indexOf(str[i]) == -1) i++;
            while (j >= 0 && vowels.indexOf(str[j]) == -1) j--;
            if (i >= j) break;
            char tmp = str[i];
            str[i++] = str[j];
            str[j--] = tmp;
        }
        return String.valueOf(str);
    }
}
public class Solution {
    public String reverseVowels(String s) {
        if (s.isEmpty()) return s;
    char[] a = s.toCharArray();
    int p1 = 0;
    int p2 = a.length-1;
     while (p1<p2)  {
         boolean flag1=  isVowels(a[p1]); 
         boolean flag2=  isVowels(a[p2]); 
          if (flag1 && flag2 ) {
              reverse(a,p1,p2);
              p1++;
              p2--;
          }
          if(!flag1)
             p1++;
          if (!flag2)
             p2--;
         
     } 
        return new String(a);
    }
        public void reverse(char[] a,int p1, int p2) {
            char temp = a[p1];
            a[p1] = a[p2];
            a[p2] = temp;

        }
    public boolean isVowels(char s) {
        switch(s){
         case ('a'):
			return true;
		case ('e'):
			return true;
		case ('i'):
			return true;
		case ('o'):
			return true;
		case ('u'):
			return true;
		case ('A'):
			return true;
		case ('E'):
			return true;
		case ('I'):
			return true;
		case ('O'):
			return true;
		case ('U'):
			return true;

                
    
        }
        return false;
    }

    
}
public class Solution {
    public String reverseVowels(String s) {
        if (s == null || s.length() < 2 ) return s;
        Set<Character> vowels = new HashSet<>();
        vowels.add('a');
        vowels.add('e');
        vowels.add('i');
        vowels.add('o');
        vowels.add('u');
        vowels.add('A');
        vowels.add('E');
        vowels.add('I');
        vowels.add('O');
        vowels.add('U');
        char[] str = s.toCharArray();
        int i = 0;
        int j = s.length() - 1;
        while (i < j) {
            while (i < j && !vowels.contains(str[i])) {
                i++;
            }
            while (i < j && !vowels.contains(str[j])) {
                j--;
            }
            char temp = str[i];
            str[i] = str[j];
            str[j] = temp;
            
            i++;
            j--;
        }
        
        return new String(str);
        
    }
}