Description
Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = “hello”, return “holle”.
Example 2:
Given s = “leetcode”, return “leotcede”.
Note:
The vowels does not include the letter “y”.
Analysis
把所有的元音字母及其位置挑选出来并存储,然后逆序填入原位置即可,注意大小写要考虑。
Code
class Solution {
public:
string reverseVowels(string s) {
vector<int> pos;
vector<char> letter;
for (int i = 0; i < s.size(); i++){
if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U'){
letter.push_back(s[i]);
pos.push_back(i);
}
}
int n = pos.size();
for (int i = 0; i < n; i++)
s[pos[i]] = letter[n - 1 - i];
return s;
}
};
Appendix
- Link: https://leetcode.com/problems/reverse-vowels-of-a-string/
- Run Time: 9ms