解題思路:
(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;
}
};