Menu
Coddy logo textTech

Wildcard Matching

Урок 15 из 15 курса Задачи на рекурсию: освойте рекурсивное мышление на Coddy.

challenge icon

Задание

Сложно

Напишите функцию с именем test, которая принимает строку s и шаблон p и возвращает true, если шаблон соответствует строке, в противном случае — false.

Шаблон может содержать буквы, цифры, пробелы и следующие подстановочные знаки:

  • * — соответствует любой последовательности букв, цифр и пробелов.
  • . — соответствует ровно одному символу (букве, цифре или пробелу).
  • ?необязательно соответствует любой последовательности букв, цифр и пробелов.

Примеры:

  • 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) {
    // Напишите здесь код
}

Все уроки раздела Задачи на рекурсию: освойте рекурсивное мышление