How to check if a 3x3 grid is a valid Sudoku grid in TypeScript

1 Answer

0 votes
// Sudoku solution must satisfy all of the following rules:
// Each of the digits 1-9 must occur once in each row.
// Each of the digits 1-9 must occur once in each column.
// Each of the digits 1-9 must occur once in each 3x3 grid.

function isValidSudoku3x3Grid(grid: number[][]): boolean {
    if (grid.length !== 3 || grid[0].length !== 3) {
        return false; // Ensure it's a 3x3 grid
    }

    let seen: Set<number> = new Set();
    for (let row of grid) {
        for (let num of row) {
            if (num < 1 || num > 9 || seen.has(num)) {
                return false; // Invalid if number is out of range or repeated
            }
            seen.add(num);
        }
    }

    return true; // Valid if all numbers 1-9 appear exactly once
}

const grid: number[][] = [
    [5, 3, 4],
    [6, 7, 2],
    [1, 9, 8]
];

if (isValidSudoku3x3Grid(grid)) {
    console.log("The grid is a valid Sudoku grid!");
} else {
    console.log("The grid is NOT a valid Sudoku grid!");
}

  
  
/*
run:
  
"The grid is a valid Sudoku grid!" 
  
*/

 



answered May 30, 2025 by avibootz
edited May 30, 2025 by avibootz

Related questions

...