void sayPre(char *pre, char *cur) {
int l = 0;
int r = 0;
int len = 0;
do {
r++;
if (pre[r] != pre[l]) {
cur[len] = r - l + '0';
cur[len + 1] = pre[l];
cur[len + 2] = '\0';
len += 2;
l = r;
}
} while(pre[r] != 0);
return;
}
char * countAndSay(int n){
char* pre = (char *)calloc(5000, sizeof(char));
char* cur = (char *)calloc(5000, sizeof(char));
pre[0] = '1';
for (int i = 2; i <= n; i++) {
sayPre(pre, cur);
char *temp = pre;
pre = cur;
cur = temp;
}
free(cur);
return pre;
}
38.leetcode.外观数列 暴力双指针
最新推荐文章于 2024-07-25 19:34:38 发布