class Solution {
public:
string reverseVowels(string s) {
vector<char> vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};
unordered_set<char> S; // 建立一个集合,用来判断当前元素是否在集合中,来判断是否是元音
for (auto c : vowels)
{
S.insert(c);
}
int l = 0, r = s.size() - 1;
while (l < r)
{
while (!S.count(s[l]) && l <= r) l ++ ;
while (!S.count(s[r]) && l <= r) r -- ;
if (l < r) swap(s[l], s[r]);
l ++, r -- ;
}
return s;
}
};