题目描述:
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
给定 s = "hello", 返回 "holle".
示例 2:
给定 s = "leetcode", 返回 "leotcede".
注意:
元音字母不包括 "y".
解题思路:
双指针法,两边找到元音字母然后交换就OK啦。
代码实现(Java语言):
class Solution {
public String reverseVowels(String s) {
if(s == "" || s==null)
return s;
int i = 0,j = s.length() - 1;
char[] str = s.toCharArray();
while(i < j){
while(i < j && !judgeVowel(str[i]))
i++;
while(i < j && !judgeVowel(str[j]))
j--;
if(i < j){
char temp = str[i];
str[i] = str[j];
str[j] = temp;
i++;
j--;
}
}
return new String(str);
}
public boolean judgeVowel(char c){
return c == 'a' | c == 'e' | c == 'i' | c == 'o' | c == 'u' |
c == 'A' | c == 'E' | c == 'I' | c == 'O' | c == 'U';
}
}