345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello" 输出: "holle"
示例 2:
输入: "leetcode" 输出: "leotcede"
说明:
元音字母不包含字母"y"。
解法一
//时间复杂度O(n), 空间复杂度O(1)
class Solution {
public:
Solution() : vowel({'a','e','i','o','u','A','E','I','O','U'}) {}
string reverseVowels(string s) {
int i = 0, j = s.size() - 1;
while(i < j) {
while(i < j && !vowel.count(s[i])) i++;
while(i < j && !vowel.count(s[j])) j--;
if(i == j) break;
char temp = s[i];
s[i] = s[j];
s[j] = temp;
i++;
j--;
}
return s;
}
private:
unordered_set<char> vowel;
};
和344很像,循环体内添加两行,先使指针指向下一个元音字母,再交换。
2019/04/30 23:15