Menu
CoddyTech

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.
challenge icon

Дополнительный вопрос

Можешь также поддержать + — одну или несколько копий элемента перед ним — с той же таблицей?

Сбросить код
def isMatch(s, p):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргументы

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

Ожидаемый вывод

true