程式語言 - LeetCode - C - 2352. Equal Row and Column Pairs



參考資訊:
https://www.cnblogs.com/cnoodle/p/17459451.html

題目:


解答:

int equalPairs(int** grid, int gridSize, int* gridColSize)
{
    int r = 0;
    int c0 = 0;
    int c1 = 0;
    char **row = NULL;
    char **col = NULL;
    char buf[8] = { 0 };

    row = malloc(sizeof(char *) * gridSize);
    col = malloc(sizeof(char *) * gridSize);
    for (c0 = 0; c0 < gridSize; c0++) {
        row[c0] = malloc(sizeof(char) * gridSize * 8);
        col[c0] = malloc(sizeof(char) * gridSize * 8);

        row[c0][0] = 0;
        col[c0][0] = 0;
    }

    for (c0 = 0; c0 < gridSize; c0++) {
        for (c1 = 0; c1 < gridSize; c1++) {
            sprintf(buf, "%x", grid[c0][c1]);
            strcat(row[c0], buf);

            sprintf(buf, "%x", grid[c1][c0]);
            strcat(col[c0], buf);
        }
    }

    for (c0 = 0; c0 < gridSize; c0++) {
        for (c1 = 0; c1 < gridSize; c1++) {
            if (!strcmp(col[c0], row[c1])) {
                r += 1;
            }
        }
    }

    for (c0 = 0; c0 < gridSize; c0++) {
        free(row[c0]);
        free(col[c0]);
    }
    free(row);
    free(col);

    return r;
}