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”.
交换元音字母
public class Solution {
public String reverseVowels(String s) {
char[] ch=s.toCharArray();
int len = s.length();
int left=0,right=len-1;
while(left < right){
char l = s.charAt(left);
char r = s.charAt(right);
if(isVowels(l) && isVowels(r)){
ch[left]=r;
ch[right]=l;
left++;
right--;
}
else if(isVowels(l) && !isVowels(r)){
right--;
}
else if(!isVowels(l) && isVowels(r)){
left++;
}
else{
left++;
right--;
}
}
String ans=String.valueOf(ch);
return ans;
}
public boolean isVowels(char s){
if(s=='a' || s=='A' || s=='e' || s=='E'||s=='i'||s=='I' || s=='o'||s=='O'||s=='u'||s=='U')
return true;
else
return false;
}
}
前后两个指针 同时遍历
这里string 没有可以直接交换的函数 先转化为char []进行操作 ,再转化String