程式語言 - LeetCode - C - 345. Reverse Vowels of a String



題目:


解答:

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;
}