leetcode 345. 反转字符串中的元音字母
题目:345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例1:
输入: “hello”
输出: “holle”
示例2:
输入: “leetcode”
输出: “leotcede”
说明:
元音字母不包含字母”y”。
方法:双指针 (对撞指针)
思路:双指针(对撞指针) ,一个从头向尾遍历,一个指针从尾向头遍历,找到一对元音字母交换一次
运行数据:执行用时:2 ms,内存消耗:39.8 MB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| public String reverseVowels(String s) {
if (s.length() < 2) { return s; } char schar[] = s.toCharArray();
int i = 0, j = schar.length - 1;
boolean flagI = false, flagJ = false;
while (i < j) {
if (!flagI) { if (isVowel(schar[i])) { flagI = true; } else { i++; }
}
if (!flagJ) { if (isVowel(schar[j])) { flagJ = true; } else { j--; }
}
if (flagI && flagJ) { char temp = schar[i]; schar[i] = schar[j]; schar[j] = temp; i++; j--; flagI = false; flagJ = false; } }
return new String(schar); }
public boolean isVowel(char ch) { return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' ||ch=='A'|| ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U'; }
|
相关链接:
学习所得,资料、图片部分来源于网络,如有侵权,请联系本人删除。
才疏学浅,若有错误或不当之处,可批评指正,还请见谅!