Menu
CoddyTech

Valid Sudoku

OrtaHashingpython iconjava iconcpp iconc iconjs icon+10

Sana board olarak 9 karakterden oluşan 9 dizelik bir liste, yani 9 × 9'luk bir Sudoku tahtası verilir; her dize bir satırı temsil eder. Her karakter 1 ile 9 arasında bir rakam ya da boş bir hücre için . karakteridir. Aynı satırda, aynı sütunda veya aynı 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 tane olmak üzere, 9 karakterden oluşan 9 dize; 1'den 9'a kadar rakamlar ve boş hücre için .
Döndürürboolean
Hiçbir satırda, sütunda veya 3 × 3 kutuda bir rakam tekrarlanmıyorsa true, aksi halde 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
Her satır, sütun ve kutuda her rakam en fazla bir kez bulunur. 0'dan başlayarak sayıldığında 4. satırdaki .74..89.3 içinde 7, 4, 8, 9 ve 3'ün her biri bir kez bulunur; diğer 26 grup için de aynısı geçerlidir, bu nedenle yanıt true olur.

lock iconGönderirken +16 gizli test

challenge icon

Ek soru

Kontrolü, 4 × 4 kutulara sahip 16 × 16'lık bir tahtaya ve 1'den 9'a, A'dan G'ye kadar olan sembollere genelleştirin. Kodunuzdaki hangi sayılar tahta boyutuna bağlıdır ve kutu formülü neye dönüşür?

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

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

true