Back
Close

Sudoku Validator

Statement

 Goal

You get a sudoku grid from a player and you have to check if it has been correctly filled.

A sudoku grid consists of 9×9 = 81 cells split in 9 sub-grids of 3×3 = 9 cells.
For the grid to be correct, each row must contain one occurrence of each digit (1 to 9), each column must contain one occurrence of each digit (1 to 9) and each sub-grid must contain one occurrence of each digit (1 to 9).

You shall answer true if the grid is correct or false if it is not.
Input
9 rows of 9 space-separated digits representing the sudoku grid.
Output
true or false
Constraints
For each digit n in the grid: 1 ≤ n ≤ 9.
Example
Input
1 2 3 4 5 6 7 8 9
4 5 6 7 8 9 1 2 3
7 8 9 1 2 3 4 5 6
9 1 2 3 4 5 6 7 8
3 4 5 6 7 8 9 1 2
6 7 8 9 1 2 3 4 5
8 9 1 2 3 4 5 6 7
2 3 4 5 6 7 8 9 1
5 6 7 8 9 1 2 3 4
Output
true

Tags
Conditions2D array

Difficulty
Easy

Test cases
Basic grid Test
Input
1 2 3 4 5 6 7 8 9 4 5 6 7 8 9 1 2 3 7 8 9 1 2 3 4 5 6 9 1 2 3 4 5 6 7 8 3 4 5 6 7 8 9 1 2 6 7 8 9 1 2 3 4 5 8 9 1 2 3 4 5 6 7 2 3 4 5 6 7 8 9 1 5 6 7 8 9 1 2 3 4
Output
true

Basic grid Validator
Input
9 1 2 3 4 5 6 7 8 3 4 5 6 7 8 9 1 2 6 7 8 9 1 2 3 4 5 8 9 1 2 3 4 5 6 7 2 3 4 5 6 7 8 9 1 5 6 7 8 9 1 2 3 4 1 2 3 4 5 6 7 8 9 4 5 6 7 8 9 1 2 3 7 8 9 1 2 3 4 5 6
Output
true

Another correct grid Test
Input
4 3 5 2 6 9 7 8 1 6 8 2 5 7 1 4 9 3 1 9 7 8 3 4 5 6 2 8 2 6 1 9 5 3 4 7 3 7 4 6 8 2 9 1 5 9 5 1 7 4 3 6 2 8 5 1 9 3 2 6 8 7 4 2 4 8 9 5 7 1 3 6 7 6 3 4 1 8 2 5 9
Output
true

Another correct grid Validator
Input
1 5 2 4 8 9 3 7 6 7 3 9 2 5 6 8 4 1 4 6 8 3 7 1 2 9 5 3 8 7 1 2 4 6 5 9 5 9 1 7 6 3 4 2 8 2 4 6 8 9 5 7 1 3 9 1 4 6 3 7 5 8 2 6 2 5 9 4 8 1 3 7 8 7 3 5 1 2 9 6 4
Output
true

Row error Test
Input
4 3 2 2 6 9 7 8 1 6 8 5 5 7 1 4 9 3 1 9 7 8 3 4 5 6 2 8 2 6 1 9 5 3 4 7 3 7 4 6 8 2 9 1 5 9 5 1 7 4 3 6 2 8 5 1 9 3 2 6 8 7 4 2 4 8 9 5 7 1 3 6 7 6 3 4 1 8 2 5 9
Output
false

Row error Validator
Input
1 5 2 4 8 9 3 7 6 7 3 9 2 5 6 8 4 1 4 6 8 3 7 1 2 9 5 3 8 7 7 2 4 6 5 9 5 9 1 1 6 3 4 2 8 2 4 6 8 9 5 7 1 3 9 1 4 6 3 7 5 8 2 6 2 5 9 4 8 1 3 7 8 7 3 5 1 2 9 6 4
Output
false

Column error Test
Input
4 3 5 2 6 9 7 8 1 6 8 2 5 7 1 4 9 3 1 9 7 8 3 4 5 6 2 8 2 6 1 9 5 3 4 7 3 7 4 6 8 2 9 1 5 1 5 9 7 4 3 6 2 8 5 1 9 3 2 6 8 7 4 2 4 8 9 5 7 1 3 6 7 6 3 4 1 8 2 5 9
Output
false

Column error Validator
Input
1 5 2 4 8 9 3 7 6 7 3 9 2 5 6 8 4 1 4 8 6 3 7 1 2 9 5 3 8 7 1 2 4 6 5 9 5 9 1 7 6 3 4 2 8 2 4 6 8 9 5 7 1 3 9 1 4 6 3 7 5 8 2 6 2 5 9 4 8 1 3 7 8 7 3 5 1 2 9 6 4
Output
false

Subgrid error Test
Input
4 3 5 2 6 9 7 8 1 6 8 2 5 7 1 4 9 3 8 9 7 1 3 4 5 6 2 1 2 6 8 9 5 3 4 7 3 7 4 6 8 2 9 1 5 9 5 1 7 4 3 6 2 8 5 1 9 3 2 6 8 7 4 2 4 8 9 5 7 1 3 6 7 6 3 4 1 8 2 5 9
Output
false

Subgrid error Validator
Input
1 5 2 4 8 9 3 7 6 7 3 9 2 5 6 8 4 1 4 6 8 3 7 1 2 9 5 3 8 7 1 2 4 6 5 9 5 9 1 7 6 3 4 2 8 2 4 6 8 9 7 5 1 3 9 1 4 6 3 5 7 8 2 6 2 5 9 4 8 1 3 7 8 7 3 5 1 2 9 6 4
Output
false

Rubbish error Test
Input
5 9 6 1 4 2 5 3 7 6 1 4 3 5 8 2 4 8 5 6 9 4 1 2 5 3 6 1 9 5 3 6 8 4 1 6 5 9 3 6 3 4 8 2 1 5 9 5 3 2 1 4 5 6 1 3 6 4 8 6 5 2 5 4 1 2 3 6 8 4 9 2 3 6 8 7 4 1 5 6 3
Output
false

Rubbish error Validator
Input
1 6 7 3 4 9 6 4 5 6 3 4 9 8 7 2 5 6 5 3 6 9 8 4 2 6 7 5 8 3 1 6 8 4 5 3 5 6 9 7 4 2 5 3 1 2 3 4 8 6 5 1 2 8 6 8 4 2 3 6 8 4 2 8 6 2 4 9 1 3 7 4 5 3 2 9 4 1 6 8 4
Output
false

When summing is not enough Test
Input
1 3 3 4 5 6 7 7 9 4 5 6 7 7 9 1 3 3 7 7 9 1 3 3 4 5 6 9 1 3 3 4 5 6 7 7 3 4 5 6 7 7 9 1 3 6 7 7 9 1 3 3 4 5 7 9 1 3 3 4 5 6 7 3 3 4 5 6 7 7 9 1 5 6 7 7 9 1 3 3 4
Output
false

When summing is not enough Validator
Input
1 2 4 4 5 6 6 8 9 4 5 6 6 8 9 1 2 4 6 8 9 1 2 4 4 5 6 9 1 2 4 4 5 6 6 8 4 4 5 6 6 8 9 1 2 6 6 8 9 1 2 4 4 5 8 9 1 2 4 4 5 6 6 2 4 4 5 6 6 8 9 1 5 6 6 8 9 1 2 4 4
Output
false

Solution language

Solution

Stub generator input