Wildcard Matching
الدرس 15 من 15 في دورة تحديات الاستدعاء الذاتي - أتقن التفكير العودي على Coddy.
التحدي
صعباكتب دالة باسم test تستقبل سلسلة نصية s ونمطاً p، وتعيد true إذا كان النمط يطابق السلسلة النصية، وإلا تعيد false.
يمكن أن يحتوي النمط على أحرف، وأرقام، ومسافات بيضاء، والرموز البديلة (wildcards) التالية،
*- يطابق أي تسلسل من الأحرف، والأرقام، والمسافات البيضاء..- يطابق حرفاً واحداً فقط، أو رقماً، أو مسافة بيضاء.?- يطابق اختيارياً أي تسلسل من الأحرف، والأرقام، والمسافات البيضاء.
أمثلة،
test("My name is Jake", "My name is *")->truetest("My name is Jake", "Your name is *")->falsetest("Maximum", "M..imum")->truetest("Mimum", "M?imum")->truetest("Minimum", "K?imum")->false
يجب أن يطابق النمط السلسلة النصية بالكامل، وليس مجرد سلسلة فرعية جزئية!
جرّب بنفسك
int test(char* s, char* p) {
// اكتب الكود هنا
}