题目: 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
class Solution {
HashSet set = new HashSet(Arrays.asList('a','e','i','o','u','A','E','O','I','U'));
public String reverseVowels(String s) {
if(s==null || s.length()==0 || s==""){
return "";
}
StringBuffer sb = new StringBuffer();
for(int i=0;i<s.length();i++){
sb.append(s.charAt(i));
}
int i=0;
int j=sb.length()-1;
while(i<=j){
//char ci=sb.charAt(i);
while(i<=j && !set.contains(sb.charAt(i))){
i++;
}
//char cj=sb.charAt(j);
while(i<=j && !set.contains(sb.charAt(j))){
j--;
}
if(i<j){
swap(sb,i,j);
i++;
j--;
}else{
break;
}
}
return sb.toString();
}
private void swap(StringBuffer s,int i,int j){
char temp=s.charAt(i);
s.setCharAt(i,s.charAt(j));
s.setCharAt(j,temp);
}
}