Is Sudoku Valid Python
- Get link
- X
- Other Apps
PROGRAM TO CHECK IF GIVEN SUDOKU SOLUTION IS VALID OR NOT
# Function to check if all elements# of the board[][] array store# value in the range[1, 9]def isinRange(board): N = 9 # Traverse board[][] array for i in range(0, N): for j in range(0, N): # Check if board[i][j] # lies in the range if ((board[i][j] <= 0) or (board[i][j] > 9)): return False return True# Function to check if the solution# of sudoku puzzle is valid or notdef isValidSudoku(board): N = 9 # Check if all elements of board[][] # stores value in the range[1, 9] if (isinRange(board) == False): return False # Stores unique value # from 1 to N unique = [False] * (N + 1) # Traverse each row of # the given array for i in range(0, N): # Initiliaze unique[] # array to false for m in range(0, N + 1): unique[m] = False # Traverse each column # of current row for j in range(0, N): # Stores the value # of board[i][j] Z = board[i][j] # Check if current row # stores duplicate value if (unique[Z] == True): return False unique[Z] = True # Traverse each column of # the given array for i in range(0, N): # Initiliaze unique[] # array to false for m in range(0, N + 1): unique[m] = False # Traverse each row # of current column for j in range(0, N): # Stores the value # of board[j][i] Z = board[j][i] # Check if current column # stores duplicate value if (unique[Z] == True): return False unique[Z] = True # Traverse each block of # size 3 * 3 in board[][] array for i in range(0, N - 2, 3): # j stores first column of # each 3 * 3 block for j in range(0, N - 2, 3): # Initiliaze unique[] # array to false for m in range(0, N + 1): unique[m] = False # Traverse current block for k in range(0, 3): for l in range(0, 3): # Stores row number # of current block X = i + k # Stores column number # of current block Y = j + l # Stores the value # of board[X][Y] Z = board[X][Y] # Check if current block # stores duplicate value if (unique[Z] == True): return False unique[Z] = True # If all conditions satisfied return True# Driver Codeif __name__ == '__main__': board = [ [ 7, 9, 2, 1, 5, 4, 3, 8, 6 ], [ 6, 4, 3, 8, 2, 7, 1, 5, 9 ], [ 8, 5, 1, 3, 9, 6, 7, 2, 4 ], [ 2, 6, 5, 9, 7, 3, 8, 4, 1 ], [ 4, 8, 9, 5, 6, 1, 2, 7, 3 ], [ 3, 1, 7, 4, 8, 2, 9, 6, 5 ], [ 1, 3, 6, 7, 4, 8, 5, 9, 2 ], [ 9, 7, 4, 2, 1, 5, 6, 3, 8 ], [ 5, 2, 8, 6, 3, 9, 4, 1, 7 ] ] if (isValidSudoku(board)): print("Valid") else: print("Not Valid")
OUTPUT
Valid
- Get link
- X
- Other Apps
Comments
Post a Comment