编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello" 输出: "holle"
示例 2:
输入: "leetcode" 输出: "leotcede"
说明:
元音字母不包含字母"y"。
分析:
前后指针往中间夹
class Solution {
public:
string reverseVowels(string s) {
// 元音:aeiou
int left = 0;
int right = s.length() - 1;
while(left <= right){
while(!isVowels(s[left])){
left ++;
if(left >= right){
break;
}
}
while(!isVowels(s[right])){
right --;
if(right <= left){
break;
}
}
if(left >= right){
break;
}
// 交换
char ch = s[left];
s[left] = s[right];
s[right] = ch;
// 下一个
left ++;
right --;
}
return s;
}
bool isVowels(char ch){
// 'a' = 97 'A' = 65
if(ch < 97)
ch += 32;
if(ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u')
return true;
return false;
}
};