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

Word Search

لديك شبكة من الأحرف board، مُعطاة كقائمة من السلاسل النصية حيث يمثّل board[r][c] الحرف في الصف r والعمود c، وسلسلة نصية word.

أعِد true إذا أمكنك تتبّع word على الشبكة: ابدأ من أي خلية، وانتقل في كل خطوة إلى الخلية الواقعة مباشرةً أعلى الخلية الحالية أو أسفلها أو على يسارها أو يمينها، بحيث تكوّن الخلايا التي تزورها word بالترتيب. لا يجوز أن يستخدم التتبّع الخلية نفسها مرتين. وإلا فأعِد false. الأحرف حساسة لحالة الأحرف، لذا فإن a وA مختلفان.

الدالة

exist(board: string-array, word: string) → boolean
boardstring-array
الشبكة، سلسلة واحدة من الأحرف في كل صف
wordstring
الكلمة التي يجب تتبُّعها
تُرجعboolean
ما إذا كان بالإمكان تتبّع الكلمة عبر خلايا متجاورة، مع استخدام كل خلية مرة واحدة على الأكثر

القيود

  • 1 ≤ board.length ≤ 6
  • 1 ≤ board[i].length ≤ 6، ولكل صف الطول نفسه.
  • 1 ≤ word.length ≤ 20
  • board وword يحتويان على أحرف إنجليزية فقط، كبيرة وصغيرة.

أمثلة

المدخلات
board = ["STAR", "POOL", "ENDS"]word = "STOOLS"
المخرجات
true
الشرح
ابدأ عند S في الصف 0، العمود 0، ثم تحرّك إلى اليمين إلى T، وانزل إلى O، ثم إلى اليمين إلى حرف O الثاني، ثم إلى اليمين إلى L، وانزل إلى S في الصف 2، العمود 3. هذه ست خلايا مختلفة، كل واحدة مجاورة للتي قبلها.

lock icon+23 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

بدلًا من الإجابة بنعم أو لا، هل يمكنك عدّ عدد الطرق المختلفة لتتبّع word على اللوحة؟

إعادة ضبط الشيفرة
def exist(board, word):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

board = ["STAR", "POOL", "ENDS"]
word = "STOOLS"

المتوقع

true