Menu
CoddyTech

Regular Expression Matching

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

פונקציה

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

אילוצים

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

דוגמאות

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

שאלת המשך

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

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

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

הפלט הצפוי

true