Menu
CoddyTech

Valid Sudoku

OrtaHashingpython iconjava iconcpp iconc iconjs icon+10

9 karakterden oluşan 9 dizelik bir liste olan board biçiminde 9 × 9'luk bir Sudoku tahtası alırsın; her dize bir satırı temsil eder. Her karakter, 1 ile 9 arasında bir rakam veya boş bir hücre için . olur. Bir satırda, sütunda veya 3 × 3'lük kutuda hiçbir rakam iki kez görünmüyorsa true, aksi hâlde false döndür. Yalnızca doldurulmuş hücreler kontrol edilir: tahtanın çözülebilir olması gerekmez.

Fonksiyon

isValidSudoku(board: string-array) → boolean
boardstring-array
Her satırda bir dize olmak üzere 9 karakter uzunluğunda 9 dize; 1'den 9'a kadar rakamlar ve boş hücre için .
Döndürürboolean
Hiçbir satır, sütun veya 3 × 3 kutu bir rakamı tekrarlamıyorsa true, aksi takdirde false

Kısıtlar

  • board.length == 9 ve board[i].length == 9
  • board[i][j], 1 ile 9 arasında bir rakam veya . değeridir
  • Tahtayı tamamlamak imkânsız olabilir; yalnızca doldurulmuş hücreler arasındaki tekrarlar önemlidir.

Örnekler

Girdi
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Çıktı
true
Açıklama
0'dan başlayarak sayılan 4. satırda, .74..89.3, 7, 4, 8, 9 ve 3 sayılarının her biri bir kez bulunur ve diğer 26 grubun hiçbirinde de bir rakam tekrarlanmaz.
challenge icon

Ek soru

4 × 4 kutulara ve 1'den 9'a, A'dan G'ye kadar sembollere sahip 16 × 16'lık bir tahtayı nasıl kontrol edersin? Kutu formülü neye dönüşür?

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

Test #1

Test #2

Test #3

Argüman

board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]

Beklenen Çıktı

true