编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: “hello”
输出: “holle”
示例 2:
输入: “leetcode”
输出: “leotcede”
说明:
元音字母不包含字母"y"。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string
方法:
同344题,只不过多了一步是否是元音字母,还是采用对撞指针。
代码:
class Solution {
public:
string reverseVowels(string s) {
int l =0, r= s.size()-1;
while(l<r){
if(isvowel(s[l]) && !isvowel(s[r])) r--;
else if(!isvowel(s[l]) && isvowel(s[r])) l++;
else if(!isvowel(s[l]) && !isvowel(s[r])) {l++;r--;}
else swap(s[l++],s[r--]);
}
return s;
}
bool isvowel(char &ch){
if (ch == 'a'|| ch == 'A') return true;
else if (ch == 'e' || ch == 'E') return true;
else if (ch == 'i' || ch == 'I') return true;
else if (ch == 'o' || ch == 'O') return true;
else if (ch == 'u' || ch == 'U') return true;
return false;
}
};