參考資訊:
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; }