Menu
CoddyTech
flag Ar iconالعربيةdown icon

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
٩ سلاسل نصية، يتكوّن كل منها من ٩ أحرف، سلسلة واحدة في كل صف، والأرقام من ١ إلى ٩ و. للخلية الفارغة
تُرجع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