难度:Easy
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。
先用一个数组保存元音字符的下标号,然后遇到元音字符的时候,反转即可。
class Solution {set<char> vowels={'a','e','i','o','u','A','E','I','O','U'};public:string reverseVowels(string s) {string res;// cout<<s.length()<<endl;if(!s.length()) return res;vector<int>indexs;for(int i=0;i<s.length();i++){if(vowels.count(s[i])) indexs.push_back(i);}if(indexs.empty()) return s;// for(auto c:indexs)// cout<<c<<" ";int start=0;for(int i=0;i<s.length();i++){if(start <indexs.size() &&i==indexs[start] ){res+=s[indexs[indexs.size()-1-start]];++start;// cout<<res<<endl;}else{res+=s[i];// cout<<res<<" - "<<endl;}}return res;}};
执行用时 :20ms, 在所有 C++ 提交中击败了54.85%的用户 内存消耗 :11.4MB, 在所有 C++ 提交中击败了5.12%的用户