leetcode 345. 反转字符串中的元音字母(Reverse Vowels of a String)
题目描述:
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello"
输出: "holle"
示例 2:
输入: "leetcode"
输出: "leotcede"
说明:
元音字母不包含字母"y"。
解法:
class Solution {
public:
string reverseVowels(string s) {
vector<bool> flag(128, false);
string vowels = "aeiouAEIOU";
for(char ch : vowels){
flag[ch] = true;
}
vector<int> indexes;
int sz = s.size();
for(int i = 0; i < sz; i++){
char ch = s[i];
if(flag[ch]){
indexes.push_back(i);
}
}
int l = 0, r = indexes.size() - 1;
string res = s;
while(l < r){
swap(res[indexes[l++]], res[indexes[r--]]);
}
return res;
}
};