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