345. 反转字符串中的元音字母
给你一个字符串 s
,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 'a'
、'e'
、'i'
、'o'
、'u'
,且可能以大小写两种形式出现不止一次。
示例 1:
输入:s = "hello" 输出:"holle"
示例 2:
输入:s = "leetcode" 输出:"leotcede"
双指针的题目,思路很清晰,设置一个left指针和right指针,当某一个指针指到元音字母时停止,等待另外一个指针也找到元音字母。当两个指针都指向元音字母时,交换字母。当指针相遇时退出循环。
public String reverseVowels(String s) {char[] chars = s.toCharArray();int left=0,right=chars.length-1;while (left<right){if (isTrue(chars[left])&&isTrue(chars[right])) {swap(left, right, chars);right--;left++;}if (!isTrue(chars[left])){left++;}if(!isTrue(chars[right])){right--;}}return new String(chars);}public boolean isTrue(char c){return "aeiouAEIOU".indexOf(c)>=0;}public void swap(int left,int right,char[] chars){char temp = chars[left];chars[left] = chars[right];chars[right] = temp;}