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