LeetCode——Z 字形变换

题目地址:https://leetcode-cn.com/problems/zigzag-conversion/

解题思路:简单暴力求解

char * convert(char * s, int numRows) {
    char map[1005][1005];
    memset(map, 0, sizeof(map));
    /*
    * i:变换后的列下标
    * j:变换后的行下标
    * k:字符串下标
    */
    int i, j, k;
    char *returnS = (char *)malloc(sizeof(char)*((int)strlen(s) + 1));
    k = 0;
    i = 0;
    //空字符情况
    if (strlen(s) == 0) {
        returnS[k] = '';
        return returnS;
    }
    //行数为一行的情况
    if (numRows == 1)
        return s;
    while (k < strlen(s)) {
        for (j = 0; j < numRows && k <strlen(s); j++)
            map[j][i] = s[k++];
        for (int x = 1; x <= numRows - 2 && k < strlen(s); x++) 
            map[numRows - x - 1][i + x] = s[k++];
        i += numRows - 1;
    }
    k = 0;
    for (i = 0; i < numRows; i++)
        for (j = 0; j < strlen(s); j++)
            if (map[i][j] != '')
                returnS[k++] = map[i][j];
    returnS[k] = '';
    return returnS;
}
原文地址:https://www.cnblogs.com/cc-xiao5/p/13268213.html