題目:

解答:
int is_vowel(char ch)
{
if ((ch == 'a') || (ch == 'A') ||
(ch == 'e') || (ch == 'E') ||
(ch == 'i') || (ch == 'I') ||
(ch == 'o') || (ch == 'O') ||
(ch == 'u') || (ch == 'U'))
{
return 1;
}
return 0;
}
char* reverseVowels(char* s)
{
int i = 0;
int idx = 0;
int len = strlen(s);
char buf[300000] = { 0 };
idx = 0;
for (i = len - 1; i >= 0 ;i--) {
if (is_vowel(s[i])) {
buf[idx++] = s[i];
}
}
idx = 0;
for (i = 0; i < len; i++) {
if (is_vowel(s[i])) {
s[i] = buf[idx++];
}
}
return s;
}