Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C - 6. Zigzag Conversion
參考資訊:
https://www.cnblogs.com/grandyang/p/4128268.html
題目:

解答:
char* convert(char *s, int numRows)
{
int i = 0;
int j = 0;
int pos = 0;
int len = strlen(s);
int interval = (numRows << 1) - 2;
char *r = NULL;
char *cur = NULL;
if (numRows <= 1) {
return s;
}
// interval = (numRows * 2) - 2;
// sub-interval = j + interval - (i * 2)
r = calloc(len + 1, 1);
cur = r;
for (i = 0; i < numRows; i++) {
for (j = i; j < len; j+= interval) {
*cur++ = s[j];
pos = j + interval - (i << 1);
if ((i != 0) && (i != (numRows - 1)) && (pos < len)) {
*cur++ = s[pos];
}
}
}
*cur = 0;
return r;
}