345. 反转字符串中的元音字母
给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现。
示例 1:
输入:s = “hello”
输出:“holle”
示例 2:
输入:s = “leetcode”
输出:“leotcede”
解题思路
使用双指针l,r,分别指向左右两个部分的元音字母,每次交换左右指针的指向的值,直到l>=r,完成字符串的翻转
代码
class Solution {public String reverseVowels(String s) {char[] array = s.toCharArray();int l=0,r=array.length-1;while (l<r){while (l<r&&array[l]!='a'&&array[l]!='i'&&array[l]!='o'&&array[l]!='u'&&array[l]!='e'&&array[l]!='A'&&array[l]!='I'&&array[l]!='O'&&array[l]!='U'&&array[l]!='E'){l++;}while (l<r&&array[r]!='a'&&array[r]!='i'&&array[r]!='o'&&array[r]!='u'&&array[r]!='e'&&array[r]!='A'&&array[r]!='I'&&array[r]!='O'&&array[r]!='U'&&array[r]!='E'){r--;}char t=array[l];array[l]=array[r];array[r]=t;l++;r--;}return new String(array);}
}