File tree Expand file tree Collapse file tree 1 file changed +71
-0
lines changed Expand file tree Collapse file tree 1 file changed +71
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ private fun BooleanArray.clear () {
3
+ for (i in indices) {
4
+ this [i] = false
5
+ }
6
+ }
7
+
8
+ fun isValidSudoku (board : Array <CharArray >): Boolean {
9
+ val isFilled = BooleanArray (10 )
10
+
11
+ for (row in board) {
12
+ isFilled.clear()
13
+
14
+ for (char in row) {
15
+ if (char == ' .' ) {
16
+ continue
17
+ }
18
+
19
+ val number = char.digitToInt()
20
+ if (isFilled[number]) {
21
+ return false
22
+ }
23
+ isFilled[number] = true
24
+ }
25
+ }
26
+
27
+ for (x in 0 until 9 ) {
28
+ isFilled.clear()
29
+
30
+ for (y in 0 until 9 ) {
31
+ val char = board[y][x]
32
+
33
+ if (char == ' .' ) {
34
+ continue
35
+ }
36
+
37
+ val number = char.digitToInt()
38
+ if (isFilled[number]) {
39
+ return false
40
+ }
41
+ isFilled[number] = true
42
+ }
43
+ }
44
+
45
+ for (gridY in 0 until 3 ) {
46
+ for (gridX in 0 until 3 ) {
47
+ isFilled.clear()
48
+
49
+ val startY = gridY * 3
50
+ val startX = gridX * 3
51
+ for (y in startY until startY + 3 ) {
52
+ for (x in startX until startX + 3 ) {
53
+ val char = board[y][x]
54
+
55
+ if (char == ' .' ) {
56
+ continue
57
+ }
58
+
59
+ val number = char.digitToInt()
60
+ if (isFilled[number]) {
61
+ return false
62
+ }
63
+ isFilled[number] = true
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ return true
70
+ }
71
+ }
You can’t perform that action at this time.
0 commit comments