代码
char * countAndSay(int n){
char *str = (char *)malloc(sizeof(char *) * 4000);
char *tp = (char *)malloc(sizeof(char *) * 4000);
str[0] = '1', str[1] = '\0';
while (--n) {
int k = 0;
for (int i = 0; str[i]; i++) {
int t = 1;
while (str[i + 1] && str[i] == str[i + 1]) ++i, ++t;
tp[k++] = t + 48;
tp[k++] = str[i];
}
//指针交换,减少复制消耗的时间
char *temp = str;
str = tp;
tp = temp;
str[k] = '\0';
}
return str;
}