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