🌗 345. 反转字符串中的元音字母
2022年10月10日
- algorithm
🌗 345. 反转字符串中的元音字母
难度: 🌗
问题描述
解法
class Solution {
public String reverseVowels(String s) {
// 思路:
// 双指针
int len = s.length();
HashSet<Character> set = new HashSet<>();
set.add('a');
set.add('e');
set.add('i');
set.add('o');
set.add('u');
set.add('A');
set.add('E');
set.add('I');
set.add('O');
set.add('U');
int i = 0;
int j = len - 1;
char[] arr = s.toCharArray();
while(i < j) {
while(i < j && !set.contains(arr[i])) {
i ++;
}
while(i < j && !set.contains(arr[j])) {
j --;
}
if(i < j) {
swap(arr, i, j);
i ++;
j --;
}
}
StringBuilder sb = new StringBuilder();
for(int k = 0; k < len; k ++) {
sb.append(arr[k]);
}
return sb.toString();
}
private void swap(char[] arr, int i, int j) {
char tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}