每日一练-leetcode
反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 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;
}
}
浙公网安备 33010602011771号