Junior — Middle
How do you implement a system for automatic Sudoku solution verification?
sobes.tech AI
Answer from AI
To automatically verify Sudoku solutions, you can implement an algorithm that checks three main conditions:
- Each row contains the digits from 1 to 9 at most once.
- Each column contains the digits from 1 to 9 at most once.
- Each of the nine 3x3 blocks contains the digits from 1 to 9 at most once.
An approximate approach:
- Represent the Sudoku as a two-dimensional array int[9][9].
- For each row, column, and block, create a structure (e.g., boolean[] or Set<Integer>) to track already encountered digits.
- Iterate through all cells and check whether the rule of uniqueness is violated.
Example code in Java:
public boolean isValidSudoku(int[][] board) {
for (int i = 0; i < 9; i++) {
boolean[] rowCheck = new boolean[9];
boolean[] colCheck = new boolean[9];
boolean[] boxCheck = new boolean[9];
for (int j = 0; j < 9; j++) {
// Check row
if (board[i][j] != 0) {
if (rowCheck[board[i][j] - 1]) return false;
rowCheck[board[i][j] - 1] = true;
}
// Check column
if (board[j][i] != 0) {
if (colCheck[board[j][i] - 1]) return false;
colCheck[board[j][i] - 1] = true;
}
// Check block
int rowIndex = 3 * (i / 3) + j / 3;
int colIndex = 3 * (i % 3) + j % 3;
if (board[rowIndex][colIndex] != 0) {
if (boxCheck[board[rowIndex][colIndex] - 1]) return false;
boxCheck[board[rowIndex][colIndex] - 1] = true;
}
}
}
return true;
}
This method checks whether the current Sudoku board is valid. To verify a solution, ensure that all cells are filled and the method returns true.