Menu
CoddyTech

Regular Expression Matching

מקבלים מחרוזת s ותבנית p. בתבנית, אות מתאימה לאותה אות, נקודה . מתאימה לכל אות אחת, וכוכבית * פירושה אפס או יותר עותקים של הרכיב שמופיע ממש לפניה, שהוא אות או נקודה. יש להחזיר true אם התבנית מתאימה לכל s, ולא רק לחלק ממנה, ו-false אחרת.

פונקציה

isMatch(s: string, p: string) → boolean
sstring
המחרוזת להתאמה, אותיות קטנות בלבד
pstring
התבנית של אותיות, נקודות וכוכבים
מחזירהboolean
true אם p תואם לכל s, false אחרת

אילוצים

  • 1 ≤ s.length ≤ 1000
  • 1 ≤ p.length ≤ 1000
  • s מכילה רק אותיות אנגליות קטנות.
  • p מכיל רק אותיות אנגליות קטנות, . ו־*.
  • כל * מופיע אחרי אות או ., ולכן p לעולם לא מתחיל ב־* ולעולם אין בו שתי כוכביות ברצף.

דוגמאות

קלט
s = "moon"p = "mo*n"
פלט
true
הסבר
o* לוקח את שתי האותיות o, ולכן m, o* ו־n מאייתים בדיוק את moon.

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

challenge icon

שאלת המשך

האם אפשר לתמוך גם ב־+, שפירושו עותק אחד או יותר של הרכיב שלפניו, באמצעות אותה הטבלה?

איפוס הקוד
def isMatch(s, p):
    # כתבו כאן את הקוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

s = "moon"
p = "mo*n"

צפוי

true