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 הקבוצות האחרות, לכן התשובה היא true.

lock icon+16 בדיקות נסתרות בשליחה

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