@
yuanmomo 能用下面 C 代码实现单词反转的算法题什么水平? leetcode 上面的题
```c
#include "stdio.h"
#include "stdlib.h"
char * reverseWords(char * s){
int len = 0;
char * start = s, * prev = NULL;
int count = 0;
int max = 0;
while(*start != '\0'){
if(*start != ' ' && (prev == NULL || (prev != NULL && *prev == ' '))){
count ++;
max = 0;
}
if(*start != '\0') max ++;
start ++;
prev = start - 1;
}
char ** arr = (char **) malloc(sizeof(char *) * count);
for (int i = 0; i <count; i ++){
arr[i] = (char *) malloc(max) ;
}
start = s;
prev = NULL;
int idx = 0;
int idx2 = 0;
while(*start != '\0'){
if(*start != ' '){
arr[idx][idx2++] = *start;
}
if(*start == ' ' && prev != NULL && *prev != ' ') {
idx ++;
arr[idx][idx2++] = '\0';
idx2 = 0;
}
start ++;
prev = start - 1;
}
arr[idx][idx2++] = '\0';
start = s;
for(int i = count-1; i >=0; i --){
idx2 = 0;
while(arr[i][idx2] != '\0'){
*start = arr[i][idx2];
start ++;
idx2 ++;
}
*start++ = ' ';
}
*start = '\0';
for(int i = 0 ; i < count; i ++) {
free(arr[i]);
}
free(arr);
return s;
}
int main(int argc, char ** argv){
char arr[] = "the sky is blue";
char * s = reverseWords(arr);
printf("%s\n", s);
}
```