Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C - 38. Count and Say
參考資訊:
https://www.cnblogs.com/grandyang/p/4086299.html
題目:

解答:
char* countAndSay(int n)
{
#define MAX_SIZE 5000
char *r = calloc(MAX_SIZE, sizeof(char));
strcpy(r, "1");
while (--n) {
int i = 0;
int size = strlen(r);
char t[MAX_SIZE] = { 0 };
for (i = 0; i < size; i++) {
int cnt = 1;
char tmp[32] = { 0 };
while (((i + 1) < size) && (r[i + 1] == r[i])) {
cnt += 1;
i += 1;
}
sprintf(tmp, "%d%c", cnt, r[i]);
strcat(t, tmp);
}
strcpy(r, t);
}
return r;
}