问题:
Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = "hello", return "holle".
Example 2:
Given s = "leetcode", return "leotcede".
Note:
The vowels does not include the letter "y".
解决:
【注】本题的要求可以将元音字母的顺序翻转,元音字母包括a,e,i,o,u,需要注意的是大写的也算,所以总共有十个字母。
① 首先定义一个方法去判断一个char字符是否是元音字母。然后通过首尾两个”指针”,当前后两个字符都是元音字符的时候才进行交换,否则将不是元音字符的指针向前或者向后移动。
public class Solution {//7ms
public String reverseVowels(String s) {
char[] schar = s.toCharArray();
int start = 0;
int end = s.length() - 1;
while(start < end){
if(isVowels(schar[start]) && isVowels(schar[end])){
char tmp = schar[start];
schar[start] = schar[end];
schar[end] = tmp;
start ++;
end --;
}else if(! isVowels(schar[start])){
start ++;
}else if(! isVowels(schar[end])){
end --;
}
}
return new String(schar);
}
public boolean isVowels(char c){
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'
|| c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
return true;
}
return false;
}
}