package com.immunize.leetcode.reverseVowels;
/**
* 345. 反转字符串中的元音字母
*
* @author Mr IMMUNIZE
*
*/
public class Solution {
public String reverseVowels(String s) {
String res = "";
char[] ch = s.toCharArray();
int left = 0;
int right = s.length() - 1;
while (left < right) {
while (left < s.length() && !isVowel(ch[left])) {
left++;
}
while (right >= 0 && !isVowel(ch[right])) {
right--;
}
if (left >= right) {
break;
}
char tmp = ch[left];
ch[left] = ch[right];
ch[right] = tmp;
left++;
right--;
}
res = new String(ch);
return res;
}
private boolean isVowel(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;
} else {
return false;
}
}
}
时间复杂度: O(N)