Menu
CoddyTech

Regular Expression Matching

Você recebe uma string s e um padrão p. No padrão, uma letra corresponde à mesma letra, um ponto . corresponde a qualquer letra, e um asterisco * significa zero ou mais cópias do elemento imediatamente anterior, que é uma letra ou um ponto. Retorne true se o padrão corresponder à string inteira s e false caso contrário.

Função

isMatch(s: string, p: string) → boolean
sstring
a string a ser correspondida, apenas letras minúsculas
pstring
o padrão de letras, pontos e estrelas
Retornaboolean
true se p corresponder a todos os elementos de s, false caso contrário

Restrições

  • 1 ≤ s.length ≤ 1000
  • 1 ≤ p.length ≤ 1000
  • s contém apenas letras minúsculas do alfabeto inglês.
  • p contém apenas letras minúsculas do inglês, . e *.
  • Cada * vem depois de uma letra ou de um ., então p nunca começa com * e nunca tem dois asteriscos seguidos.

Exemplos

Entrada
s = "moon"p = "mo*n"
Saída
true
Explicação
o* captura ambas as letras o, então m, o* e n formam exatamente moon.
challenge icon

Para ir além

Você também pode oferecer suporte a +, uma ou mais cópias do elemento anterior, com a mesma tabela?

Redefinir código
def isMatch(s, p):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumentos

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

Saída Esperada

true