Valid Sudoku

 Valid Sudoku

Determine if a 9 x 9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules:

  1. Each row must contain the digits 1-9 without repetition.
  2. Each column must contain the digits 1-9 without repetition.
  3. Each of the nine 3 x 3 sub-boxes of the grid must contain the digits 1-9 without repetition.

Note:

  • A Sudoku board (partially filled) could be valid but is not necessarily solvable.
  • Only the filled cells need to be validated according to the mentioned rules.

 

 

Example 1:

 

Example


 

Constraints:

  • board.length == 9
  • board[i].length == 9
  • board[i][j] is a digit or '.'.

 

Solution to the Above Question

class Solution {

public:

    bool isValidSudoku(vector<vector<char>>& board) {

        set<string>st;

 

        for(int i=0; i<9; i++){

            for(int j=0; j<9; j++){

                if(board[i][j]!='.'){

                    if(st.find(to_string(board[i][j]) +"_R_"+ to_string(i))!=st.end() ||                                                    st.find(to_string(board[i][j]) +"_C_"+ to_string(j))!=st.end() ||                                                     st.find(to_string(board[i][j]) +"_B_"+ to_string(i/3) +" "+to_string(j/3))!=st.end()){

                        return false;

                    }

                    else{

                        st.insert(to_string(board[i][j])+"_R_"+to_string(i));

                        st.insert(to_string(board[i][j])+"_C_"+to_string(j));

                        st.insert(to_string(board[i][j])+"_B_"+to_string(i/3) +" "+to_string(j/3));

                    }

                }

            }

        }

        return true;

    }

};

 

 

Post a Comment

0 Comments