编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入:"hello" 输出:"holle"示例 2:
输入:"leetcode" 输出:"leotcede"
提示:
- 元音字母不包含字母 "y" 。
class Solution {
public:
string reverseVowels(string s) {
unordered_map<char, int> hash {
{'a', 1}, {'A', 1},
{'e', 1}, {'E', 1},
{'i', 1}, {'I', 1},
{'o', 1}, {'O', 1},
{'u', 1}, {'U', 1},
};
int n = s.size();
int left = 0, right = n - 1;
while(left < right) {
while(left < right && !hash.count(s[left])) {
left ++;
}
while(left < right && !hash.count(s[right])) {
right --;
}
if(left < right && hash.count(s[left]) && hash.count(s[right])) {
swap(s[left], s[right]);
left ++;
right --;
}
}
return s;
}
};