反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入:"hello" 输出:"holle"
示例 2:
输入:"leetcode" 输出:"leotcede"
此方法用的是双指针法:
第一个指针只想头,第二个指针指向尾,当两边指针分别找到元音字母时交换,如何查原因字符是个知识点.indexOf(),交换完若头指针小于尾指针则继续前进指针;、
此题的难点我感觉在于字符串和字符数组的相互转化.toCharArray()
class Solution { public String reverseVowels(String s) { char[] rev = s.toCharArray();//将字符串转为字符数组 int n = s.length();//数组的长度res.length;字符串的长度string.length();列表的长度LIst.size() int i = 0; int j = n-1; while(i < j){ while(i < n && !includeYin(rev[i]))++i; while(j > 0 && !includeYin(rev[j]))--j; if(i < j){ swap(rev,i,j); ++i; --j; } } return new String(rev); } public boolean includeYin(char k){ return "aeiouAEIOU".indexOf(k) >= 0;//返回第一个符合的索引,若没有返回-1 } public void swap(char[] rev,int i,int j){ char temp; temp = rev[i]; rev[i] = rev[j]; rev[j] = temp; } }