Menu
CoddyTech

Regular Expression Matching

Дана строка s и шаблон p. В шаблоне буква соответствует такой же букве, точка . соответствует любой одной букве, а звёздочка * означает ноль или более повторений элемента, стоящего непосредственно перед ней, которым является буква или точка. Верните true, если шаблон соответствует всей строке s, а не только её части, и false в противном случае.

Функция

isMatch(s: string, p: string) → boolean
sstring
строка для поиска совпадения, только строчные буквы
pstring
шаблон из букв, точек и звёздочек
Возвращаетboolean
true, если p соответствует всему s, иначе false

Ограничения

  • 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