Leetcode 345. 反转字符串中的元音字母 C++
Leetcode 345. 反转字符串中的元音字母
题目
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
测试样例
示例 1:
输入: "hello" 输出: "holle"
示例 2:
输入: "leetcode" 输出: "leotcede"
说明:
元音字母不包含字母"y"。
题解
双指针,头尾指针找元音字母,交换即可。详细过程见代码
代码
bool isY(char x){
if(x>=A && x<=Z) x += a-A;
return x==a || x==e || x==i || x==o || x==u;
}
string reverseVowels(string s) {
int i=0,j=s.length()-1;
while(i < j){
if(isY(s[i]) && isY(s[j])){
swap(s[i],s[j]);
i++;
j--;
}else if(isY(s[i])){
j--;
}else if(isY(s[j])){
i++;
}else{
i++;
j--;
}
}
return s;
}
上一篇:
IDEA上Java项目控制台中文乱码
