Menu
CoddyTech

Regular Expression Matching

Otrzymujesz ciąg znaków s i wzorzec p. We wzorcu litera dopasowuje tę samą literę, kropka . dopasowuje dowolną pojedynczą literę, a gwiazdka * oznacza zero lub więcej wystąpień elementu bezpośrednio przed nią, którym jest litera lub kropka. Zwróć true, jeśli wzorzec pasuje do całego ciągu s, a nie tylko do jego części, a w przeciwnym razie false.

Funkcja

isMatch(s: string, p: string) → boolean
sstring
ciąg znaków do dopasowania, tylko małe litery
pstring
wzór z liter, kropek i gwiazdek
Zwracaboolean
true, jeśli p pasuje do całego s, w przeciwnym razie false

Ograniczenia

  • 1 ≤ s.length ≤ 1000
  • 1 ≤ p.length ≤ 1000
  • s zawiera wyłącznie małe litery alfabetu angielskiego.
  • p zawiera wyłącznie małe litery alfabetu angielskiego, . i *.
  • Każde * występuje po literze lub ., więc p nigdy nie zaczyna się od * i nigdy nie ma dwóch gwiazdek z rzędu.

Przykłady

Wejście
s = "moon"p = "mo*n"
Wyjście
true
Wyjaśnienie
o* obejmuje obie litery o, więc m, o* i n tworzą dokładnie moon.

lock icon+29 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy możesz też obsłużyć +, czyli jedną lub więcej kopii poprzedzającego go elementu, przy użyciu tej samej tabeli?

Zresetuj kod
def isMatch(s, p):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

true