How to check if a 3x3 grid is a valid Sudoku grid in VB.NET

1 Answer

0 votes
Imports System
Imports System.Collections.Generic

' 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.

Class SudokuValidator
    Public Shared Function IsValidSudoku3x3Grid(ByVal grid As Integer(,)) As Boolean
        Dim rows As Integer = grid.GetLength(0)
        Dim cols As Integer = grid.GetLength(1)
		
        If rows <> 3 OrElse cols <> 3 Then Return False
        
		Dim seen As HashSet(Of Integer) = New HashSet(Of Integer)()

        For i As Integer = 0 To rows - 1
            For j As Integer = 0 To cols - 1
                Dim num As Integer = grid(i, j)
                If num < 1 OrElse num > 9 OrElse seen.Contains(num) Then Return False
                seen.Add(num)
            Next
        Next

        Return True
    End Function

	Public Shared Sub Main()
        Dim grid As Integer(,) = {
        {5, 3, 4},
        {6, 7, 2},
        {1, 9, 8}}

        If IsValidSudoku3x3Grid(grid) Then
            Console.WriteLine("The grid is a valid Sudoku grid!")
        Else
            Console.WriteLine("The grid is NOT a valid Sudoku grid!")
        End If
    End Sub
End Class


 
' run
'
' The grid is a valid Sudoku grid!
'

 



answered May 30, 2025 by avibootz

Related questions

1 answer 135 views
1 answer 160 views
1 answer 148 views
1 answer 121 views
1 answer 156 views
...