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".
Note:
The vowels does not include the letter "y".
题目大意:输入一个字符串,输出交换元音字母位置的字符串。
代码如下:
void swap(char* a, char* b)
{
char temp = *a;
*a = *b;
*b = temp;
}
int isvowel(char c)
{
c = tolower(c);
if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
return 1;
else
return 0;
}
char* reverseVowels(char* s) {
int len = strlen(s);
for(int i = 0,j = len - 1;i < j;){
if(isvowel(*(s+i)) && isvowel(*(s+j))) swap(s+i, s+j),i++,j--;
if(isvowel(*(s+i)) && !isvowel(*(s+j))) j--;
if(!isvowel(*(s+i)) && isvowel(*(s+j))) i++;
if(!isvowel(*(s+i)) && !isvowel(*(s+j))) i++,j--;
}
return s;
}