leetcode 345. 反转字符串中的元音字母
题目:345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例1:
输入: “hello”
输出: “holle”
示例2:
输入: “leetcode”
输出: “leotcede”
说明:
元音字母不包含字母”y”。
方法:双指针 (对撞指针)
思路:双指针(对撞指针) ,一个从头向尾遍历,一个指针从尾向头遍历,找到一对元音字母交换一次
运行数据:执行用时:2 ms,内存消耗:39.8 MB
| 12
 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';
 }
 
 | 
相关链接:
学习所得,资料、图片部分来源于网络,如有侵权,请联系本人删除。
才疏学浅,若有错误或不当之处,可批评指正,还请见谅!