Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = "hello", return "holle".
Example 2:
Given s = "leetcode", return "leotcede".
Note:
The vowels does not include the letter "y".
Solution:
有点像快排。
public class Solution
{
public String reverseVowels(String s)
{
if(s == null || s.length() == 0)
return "";
char[] chars = s.toCharArray();
String vowels = "AEIOUaeiou";
int i = 0, j = s.length() - 1;
while(i < j)
{
while(!vowels.contains(chars[i] + ""))
{
if(i == s.length() - 1) break;
i ++;
}
while(!vowels.contains(chars[j] + ""))
{
if(j == 0) break;
j --;
}
if(i >= j)
break;
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
i++;
j--;
}
return new String(chars);
}
}