【题目描述】
Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = "hello", return "holle".
Example 2:
Given s = "leetcode", return "leotcede".
逆转字符串里的元音字母,二分搜索的变形,要注意的是元音字母的大写也算是元音
【代码】
class Solution {
public:
bool isvowel(char c){
if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u') return true;
if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U') return true;
return false;
}
string reverseVowels(string s) {
int len=s.length();
int i=0,j=len-1;
while(i<j){
if(isvowel(s[i])&&isvowel(s[j])){
char temp=s[i];
s[i]=s[j];
s[j]=temp;
i++;
j--;
}
else if(isvowel(s[i])){
j--;
}
else if(isvowel(s[j])){
i++;
}
else{
i++;
j--;
}
}
return s;
}
};