编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入:"hello"
输出:"holle"
示例 2:
输入:"leetcode"
输出:"leotcede"
思路:将所有元音字母存入Set集合,声明左指针left,右指针right,从左到右和从右到左同时找元音字母,找到进行交换即可。
class Solution {
Set<Character> vowels = new HashSet<>(){{
add('a');
add('e');
add('i');
add('o');
add('u');
add('A');
add('E');
add('I');
add('O');
add('U');
}};
public String reverseVowels(String s) {
char []arr = s.toCharArray();
int left = 0, right = s.length() - 1;
while(left < right){
if(vowels.contains(arr[left]) && vowels.contains(arr[right])){
char temp = arr[right];
arr[right] = arr[left];
arr[left] = temp;
left++;
right--;
}
if(!vowels.contains(arr[right])){
right--;
}
if(!vowels.contains(arr[left])){
left++;
}
}
return new String(arr);
}
}