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

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 تمامًا.

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

challenge icon

سؤال إضافي

هل يمكنك أيضًا دعم +، أي نسخة واحدة أو أكثر من العنصر الذي يسبقه، باستخدام الجدول نفسه؟

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

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

المتوقع

true