Menu
CoddyTech

Sudoku Solver

SulitBacktrackingpython iconjava iconcpp iconc iconjs icon+10

Papan sudoku adalah kisi 9 × 9 yang dibagi menjadi sembilan kotak 3 × 3. Pada papan yang sudah terpecahkan, setiap baris, setiap kolom, dan setiap kotak memuat setiap digit dari 1 sampai 9 tepat satu kali.

Teka-teki diberikan sebagai 9 string, satu untuk setiap baris dari atas; . menandakan sel kosong. Isi setiap sel kosong dan kembalikan papan yang sudah terpecahkan dalam bentuk yang sama. Papan ini memiliki tepat satu solusi.

Fungsi

solveSudoku(board: string-array) → string-array
boardstring-array
9 baris teka-teki, satu titik di setiap sel kosong
Mengembalikanstring-array
9 baris pada papan yang telah diselesaikan

Batasan

  • board berisi 9 string dengan panjang 9.
  • Setiap karakter adalah . atau salah satu digit dari 1 sampai 9.
  • Digit yang diberikan tidak pernah berulang dalam baris, kolom, atau kotak.
  • Papan ini memiliki tepat satu solusi.

Contoh

Input
board = ["9.7.....6", "824.3....", "..1..9..2", ".9...2.18", "...4....5", "1325.8...", "...687...", "......8.9", ".4.9...5."]
Output
["957214386", "824736591", "361859742", "495372618", "786491235", "132568974", "519687423", "273145869", "648923157"]
Penjelasan
Baris paling atas 9.7.....6 sudah berisi 9, 7, dan 6, jadi enam sel kosongnya diisi dengan 1, 2, 3, 4, 5, dan 8. Kolom dan kotak menentukan posisi masing-masing angka, dan baris tersebut menjadi 957214386.
challenge icon

Pertanyaan lanjutan

Dalam Sudoku Killer, kandang yang terdiri dari beberapa sel juga harus memiliki jumlah sesuai dengan angka yang diberikan. Bagaimana kamu akan menambahkan aturan itu ke dalam pencarian dan menggunakannya untuk memangkas cabang lebih awal?

Reset kode
def solveSudoku(board):
    # Tulis kodemu di sini

Tes #1

Argumen

board = ["9.7.....6", "824.3....", "..1..9..2", ".9...2.18", "...4....5", "1325.8...", "...687...", "......8.9", ".4.9...5."]

Output yang diharapkan

["957214386", "824736591", "361859742", "495372618", "786491235", "132568974", "519687423", "273145869", "648923157"]