解题思路:
- 本题为基础双指针法交换前后元音元素;
- 一般遇见字符串问题,能转成字符数组就尽量转(方便);
- 转换成数组后,分别定义前后两个索引指针用
while
依次遍历数组; - 定义
isVowel()
方法将非元音元素返回给判断处,然后移动指针直到符合元音的位置,然后tmp
进行交换即可; - 最后扫描完数组后,一定要在返回的时候再转成字符串 String 输出。
class Solution {
public String reverseVowels(String s) {
char[] arr = s.toCharArray();//先将字符串转成字符数组(方便操作)
int n = arr.length;
int l = 0;
int r = n - 1;
while(l < r){
while(l < n && !isVowel(arr[l])){//从左判断如果当前元素不是元音
l++;
}
while(r >= 0 && !isVowel(arr[r]