Skip to content

Commit

Permalink
Merge pull request #189 from anmol-tripathi83/master
Browse files Browse the repository at this point in the history
Added Valid Sudoko problem #175
  • Loading branch information
JenilGajjar20 authored Oct 19, 2024
2 parents 5baa6b4 + a7aef92 commit c44b401
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
40 changes: 40 additions & 0 deletions Java/Valid_Sudoko_problem/problem.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Link to the problem statement: https://leetcode.com/problems/valid-sudoku/description/


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

Each row must contain the digits 1-9 without repetition.
Each column must contain the digits 1-9 without repetition.
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:
Input: board =
[["5","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
Output: true

Example 2:
Input: board =
[["8","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
Output: false
Explanation: Same as Example 1, except with the 5 in the top left corner being modified to 8. Since there are two 8's in the top left 3x3 sub-box, it is invalid.
37 changes: 37 additions & 0 deletions Java/Valid_Sudoko_problem/solution.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Collect the set of things we see, encoded as strings. For example:

// '4' in row 7 is encoded as "(4)7".
// '4' in column 7 is encoded as "7(4)".
// '4' in the top-right block is encoded as "0(4)2".
// Scream false if we ever fail to add something because it was already added (i.e., seen before).

import java.util.*;

class solution{
public static void main(String[] args) {
char[][] board = {{'5','3','.','.','7','.','.','.','.'}
,{'6','.','.','1','9','5','.','.','.'}
,{'.','9','8','.','.','.','.','6','.'}
,{'8','.','.','.','6','.','.','.','.'}
,{'4','.','.','8','.','3','.','.','1'}
,{'7','.','.','.','2','.','.','.','6'}
,{'.','6','.','.','.','.','2','8','.'}
,{'.','.','.','4','1','9','.','.','5'}
,{'.','.','.','.','8','.','.','7','9'}};

System.out.println(isValidSudoko(board));
}
public static boolean isValidSudoko(char[][] board) {
Set seen = new HashSet();
for (int i=0; i<9; ++i) {
for (int j=0; j<9; ++j) {
if (board[i][j] != '.') {
String b = "(" + board[i][j] + ")";
if (!seen.add(b + i) || !seen.add(j + b) || !seen.add(i/3 + b + j/3));
return false;
}
}
}
return true;
}
}

0 comments on commit c44b401

Please sign in to comment.