Menu
CoddyTech

Valid Sudoku

בינוניגיבובpython iconjava iconcpp iconc iconjs icon+10

ניתן לך לוח סודוקו בגודל 9 × 9 בשם board, רשימה של 9 מחרוזות, שבכל אחת מהן 9 תווים, מחרוזת אחת לכל שורה. כל תו הוא ספרה מ־1 עד 9 או . עבור תא ריק. החזר true אם אף ספרה אינה מופיעה פעמיים בשורה, בעמודה או בתיבה בגודל 3 × 3, ו־false אחרת. בודקים רק את התאים המלאים: הלוח לא חייב להיות פתיר.

פונקציה

isValidSudoku(board: string-array) → boolean
boardstring-array
9 מחרוזות בנות 9 תווים, אחת בכל שורה, ספרות 1 עד 9 ו־. עבור תא ריק
מחזירהboolean
אמת אם אין שורה, עמודה או תיבה בגודל 3 × 3 שבה ספרה חוזרת, אחרת שקר

אילוצים

  • board.length == 9 וגם board[i].length == 9
  • board[i][j] היא ספרה בין 1 ל־9 או .
  • ייתכן שאי אפשר להשלים את הלוח; רק חזרות בין התאים שמולאו חשובות.

דוגמאות

קלט
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
פלט
true
הסבר
בשורה 4, בספירה החל מ־0, .74..89.3, מופיעות הספרות 7, 4, 8, 9 ו־3 פעם אחת כל אחת, ואף אחת מ־26 הקבוצות האחרות אינה חוזרת על ספרה.
challenge icon

שאלת המשך

איך היית בודק לוח בגודל 16 × 16 עם תיבות בגודל 4 × 4 והסמלים 1 עד 9 ו־A עד G? למה הופכת נוסחת התיבות?

איפוס הקוד
def isValidSudoku(board):
    # כתבו כאן את הקוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

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

הפלט הצפוי

true