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