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