345 反转字符串中的元音字母

本文最后更新于:2021年1月15日 凌晨

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

示例 1:

1
2
输入:"hello"
输出:"holle"

示例 2:

1
2
输入:"leetcode"
输出:"leotcede"

提示:

  • 元音字母不包含字母 “y” 。

Solution

  • 双指针
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// @lc code=start
class Solution {
public:
string reverseVowels(string s) {
int l=0, r=s.size()-1;
while(l<r){
while(l<r && !isVowel(s[l])){
++l;
}
while(l<r && !isVowel(s[r])){
--r;
}
swap(s[l++], s[r--]);
}
return s;
}

private:
bool isVowel(char c){
if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U')
return true;
else
return false;
}
};
// @lc code=end

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!