Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Wildcard Matching

الدرس 15 من 15 في دورة تحديات الاستدعاء الذاتي - أتقن التفكير العودي على Coddy.

challenge icon

التحدي

صعب

اكتب دالة باسم test تستقبل سلسلة نصية s ونمطاً p، وتعيد true إذا كان النمط يطابق السلسلة النصية، وإلا تعيد false.

يمكن أن يحتوي النمط على أحرف، وأرقام، ومسافات بيضاء، والرموز البديلة (wildcards) التالية،

  • * - يطابق أي تسلسل من الأحرف، والأرقام، والمسافات البيضاء.
  • . - يطابق حرفاً واحداً فقط، أو رقماً، أو مسافة بيضاء.
  • ? - يطابق اختيارياً أي تسلسل من الأحرف، والأرقام، والمسافات البيضاء.

أمثلة،

  • test("My name is Jake", "My name is *")  ->  true
  • test("My name is Jake", "Your name is *")  ->  false
  • test("Maximum", "M..imum")  ->  true 
  • test("Mimum", "M?imum")  ->  true 
  • test("Minimum", "K?imum")  ->  false 

يجب أن يطابق النمط السلسلة النصية بالكامل، وليس مجرد سلسلة فرعية جزئية!

جرّب بنفسك

int test(char* s, char* p) {
    // اكتب الكود هنا
}

جميع دروس تحديات الاستدعاء الذاتي - أتقن التفكير العودي