典型的两根指针,对于当中的指针变换,我们需要好好总结一下。
public class Solution {
Set<Character> set;
private Set<Character> getSet() {
if (set == null) {
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');
}
return set;
}
public String reverseVowels(String s) {
if (s == null || s.length() < 2) {
return s;
}
int left = 0, right = s.length() - 1;
Set<Character> set = getSet();
char[] cArray = s.toCharArray();
while (left < right) {
if (!set.contains(cArray[left])) {
left++;
continue;
}
if (!set.contains(cArray[right])) {
right--;
continue;
}
char temp = cArray[left];
cArray[left] = cArray[right];
cArray[right] = temp;
left++;
right--;
}
return new String(cArray);
}
}

本文介绍了一种使用双指针技术来反转字符串中元音字母的方法。通过定义一个包含所有元音字母的集合,并利用两个指针从字符串两端开始向中间遍历,实现仅交换元音字母的位置。
555

被折叠的 条评论
为什么被折叠?



