文章目录
- 力扣题目
- 代码
力扣题目
给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。
元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现不止一次。
示例 1:
输入:s = “hello”
输出:“holle”
示例 2:
输入:s = “leetcode”
输出:“leotcede”
代码
void reverse(char *str1, char *str2)
{char temp;temp = *str1;*str1 = *str2;*str2 = temp;return;
}int identifyVowel(char s)/*元音字母返回1,否则返回0*/
{if(s == 'A' || s == 'E' || s == 'I' || s == 'O' || s == 'U' ||s == 'a' || s == 'e' || s == 'i' || s == 'o' || s == 'u'){return 1;}else{return 0;}
}char* reverseVowels(char* s)
{int len = strlen(s);int i = 0;int j = len - 1;while(i < j){if(identifyVowel(s[i]) == 0)/*如果不是元音字母就往后找*/{i++;}if(identifyVowel(s[j]) == 0)/*如果不是元音字母就往前找*/{j--;}if(identifyVowel(s[i]) == 1 && identifyVowel(s[j]) == 1)/*都是元音字母就交换位置*/{reverse(&s[i], &s[j]);i++;j--;}}return s;
}