Menu
CoddyTech

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