Menu
CoddyTech

Sudoku Solver

Bir sudoku tahtası, dokuz adet 3 × 3 kutuya bölünmüş 9 × 9'luk bir ızgaradır. Çözülmüş bir tahtada her satır, her sütun ve her kutu 1'den 9'a kadar olan rakamların her birini tam olarak bir kez içerir.

Bulmaca, yukarıdan aşağıya her satır için bir tane olmak üzere 9 dizge olarak verilir; . boş bir hücreyi belirtir. Tüm boş hücreleri doldur ve çözülmüş tahtayı aynı biçimde döndür. Tahtanın tam olarak bir çözümü vardır.

Fonksiyon

solveSudoku(board: string-array) → string-array
boardstring-array
bulmacanın 9 satırı, her boş hücrede bir nokta
Döndürürstring-array
çözülmüş tahtanın 9 satırı

Kısıtlar

  • board, her biri 9 karakter uzunluğunda 9 dizge tutar.
  • Her karakter . veya 1 ile 9 arasındaki rakamlardan biridir.
  • Verilen rakamlar hiçbir satırda, sütunda veya kutuda tekrarlanmaz.
  • Tahtanın tam olarak bir çözümü vardır.

Örnekler

Girdi
board = ["9.7.....6", "824.3....", "..1..9..2", ".9...2.18", "...4....5", "1325.8...", "...687...", "......8.9", ".4.9...5."]
Çıktı
["957214386", "824736591", "361859742", "495372618", "786491235", "132568974", "519687423", "273145869", "648923157"]
Açıklama
Üst satırda 9.7.....6 zaten 9, 7 ve 6 bulunduğundan, altı boş hücreye 1, 2, 3, 4, 5 ve 8 gelir. Her birinin nereye geleceğini sütunlar ve kutular belirler ve satır 957214386 hâline gelir.
challenge icon

Ek soru

Killer sudoku'da hücre kafeslerinin toplamı da verilen değerlere eşit olmalıdır. Bu kuralı aramaya nasıl eklersin ve dalları erkenden budamak için nasıl kullanırsın?

Kodu sıfırla
def solveSudoku(board):
    # Kodu buraya yazın

Test #1

Argüman

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

Beklenen Çıktı

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