双指针,注意还有大写的元音字母
class Solution {
public:
string reverseVowels(string s) {
//元音字母取出反转再放回
//使用一个集合来存放元音字母
vector<char> vowles = {'a','A','e','E','i','I','o','O','u','U'};
set<char> vowle(vowles.begin(),vowles.end());
//双指针左右开始遍历
int left = 0;
int right = s.size()-1;
while(left < right){
while(vowle.count(s[left]) == 0 && left<right){
left++;
}
while(vowle.count(s[right])==0 && left<right){
right--;
}
if(left<right){
swap(s[left++],s[right--]);
}
}
return s;
}
};