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



題目:


解答:

char* reverseWords(char* s)
{
    int i = 0;
    int len = 0;
    int size = strlen(s);
    char* ret = calloc(size + 1, sizeof(char));
 
    for (i = size - 1; i >= 0; i--) {
        if (s[i] != (char)' ') {
            len += 1;
            continue;
        }

        if (len > 0) {
            strcat(ret, &s[i + 1]);
            strcat(ret, " ");
        }

        len = 0;
        s[i] = 0;
    }
 
    if (len > 0) {
        strcat(ret, &s[i + 1]);
    }
 
    len = strlen(ret);
    if (len && (ret[len - 1] == (char)' ')) {
        ret[len - 1] = 0;
    }
 
    return ret;
}