沒想到~已經感覺沒有那麼難(痛哭)
好像可以再用bit operation 去把3x3的每個小方格從1~9
就不需要宣告 square 9x9了!
bool isValidSudoku(char** board, int boardSize, int* boardColSize) {
bool colume[9][9] = {false};
bool square[9][9] = {false};
for (int i=0; i<9; i++)
{
// bool *row = calloc(9, sizeof(bool)*9);
bool row[9] = {false};
for (int j=0;j<9;j++)
{
if (board[i][j]=='.')
continue;
int digit = board[i][j]-'1';
if (colume[digit][j] || row[digit])
return false;
colume[digit][j] = true;
row[digit] = true;
int squire_idx = (i/3)*3 + j/3;
if (square[squire_idx][digit])
return false;
square[squire_idx][digit]=true;
}
}
return true;
}
沒有留言:
張貼留言