您的位置:首页 > 其它

LeetCode 345 Reverse Vowels of a String(字符串操作)

2017-04-06 22:57 447 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LeetCode