345.Reverse Vowels of a String
345.Reverse Vowels of a String
难度:Easy
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
1
示例 1:
2
3
输入: "hello"
4
输出: "holle"
5
示例 2:
6
7
输入: "leetcode"
8
输出: "leotcede"
9
说明:
10
元音字母不包含字母"y"。
Copied!
先用一个数组保存元音字符的下标号,然后遇到元音字符的时候,反转即可。
1
class Solution {
2
set<char> vowels={'a','e','i','o','u','A','E','I','O','U'};
3
public:
4
string reverseVowels(string s) {
5
string res;
6
// cout<<s.length()<<endl;
7
if(!s.length()) return res;
8
vector<int>indexs;
9
for(int i=0;i<s.length();i++)
10
{
11
if(vowels.count(s[i])) indexs.push_back(i);
12
}
13
if(indexs.empty()) return s;
14
// for(auto c:indexs)
15
// cout<<c<<" ";
16
int start=0;
17
for(int i=0;i<s.length();i++)
18
{
19
if(start <indexs.size() &&i==indexs[start] )
20
{
21
res+=s[indexs[indexs.size()-1-start]];
22
++start;
23
// cout<<res<<endl;
24
}
25
else
26
{
27
res+=s[i];
28
// cout<<res<<" - "<<endl;
29
}
30
31
}
32
return res;
33
}
34
};
Copied!
执行用时 :20ms, 在所有 C++ 提交中击败了54.85%的用户 内存消耗 :11.4MB, 在所有 C++ 提交中击败了5.12%的用户
Copy link