程式語言 - LeetCode - C - 151. Reverse Words in a String



題目:


解答:

char* reverseWords(char* s)
{
    int l = 0;
    int cc = 0;
    int len = strlen(s);
    char *r = malloc(len + 2);

    r[0] = 0;
    for (cc = len - 1; cc >= 0; cc--) {
        if (s[cc] == (char)' ') {
            if (l > 0) {
                strcat(r, &s[cc + 1]);
                strcat(r, " ");
            }

            l = 0;
            s[cc] = 0;
        }
        else {
            l += 1;
        }
    }

    if (l > 0) {
        strcat(r, &s[cc + 1]);
    }

    l = strlen(r);
    if (l && (r[l - 1] == (char)' ')) {
        r[l - 1] = 0;
    }

    return r;
}