解题思路:
(1)使用夹逼定理,设置头尾两个指针,分别从前往后遍历,从后往前遍历
(2)当两个指针所指的位置都是元音字母时,交换两个字母
class Solution {
public:
string reverseVowels(string s) {
int i=0,j=s.length()-1;
bool ai,aj;
while(i<=j) { // 夹逼定理
ai = Judge(s[i]);
aj = Judge(s[j]);
if(!ai&&!aj) i++,j--;
else if(!ai&&aj) i++;
else if(ai&&!aj) j--;
else {
char a = s[i];
s[i] = s[j];
s[j] = a;
i++,j--;
}
}
return s;
}
bool Judge(char s) {
char x = tolower(s);
if(x=='a'||x=='e'||x=='i'||x=='o'||x=='u') return true;
else return false;
}
};