Description Link to heading
345.reverse-vowels-of-a-string
Solution Link to heading
We use unordered_set
to determine whether it is vowel, two pointers.
Code Link to heading
class Solution {
public:
string reverseVowels(string s) {
unordered_set<char> mset{'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};
int l = 0, r = s.size() - 1;
while (l <= r) {
if (mset.find(s[l]) != mset.end() && mset.find(s[r]) != mset.end()) {
char tmp = s[l];
s[l++] = s[r];
s[r--] = tmp;
} else if (mset.find(s[l]) != mset.end() && mset.find(s[r]) == mset.end())
r--;
else if (mset.find(s[l]) == mset.end() && mset.find(s[r]) != mset.end())
l++;
else {
r--;
l++;
}
}
return s;
}
};