描述
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: “hello”
输出: “holle”
示例 2:
输入: “leetcode”
输出: “leotcede”
说明:
元音字母不包含字母"y"。
思路
这种题目不难,但是要细心,不细心就出错。初始化两个指针分别指向开头和结尾,从两端往中间找元音字母,找到就交换。
注意:在判断条件中,越界判断一定要写在前面。
class Solution {
public:
string reverseVowels(string s) {
int i=0;
int j=s.size()-1;
while(i<j){
while(i<j&&!judge(s[i]))i++;
while(i<j&&!judge(s[j]))j--;
if(i<j) swap(s[i],s[j]);
i++,j--;
}
return s;
}
bool judge(char a){
a=tolower(a);
return a=='a'||a=='e'||a=='i'||a=='o'||a=='u';
}
};