REGEX MATCHING HARD
problema
Dada uma string s e um padrão p, diga se o padrão casa com a string. O padrão
suporta dois caracteres especiais:
· . casa com qualquer caractere (exatamente um).
· * casa com zero ou mais repetições do elemento imediatamente antes dele.
O casamento precisa cobrir a string inteira, não só um pedaço dela.
s = "aa", p = "a" → false
"a" casa com um caractere só, e sobra um "a".
s = "aa", p = "a*" → true
"a*" repete o "a" duas vezes.
s = "ab", p = ".*" → true
".*" é "zero ou mais de qualquer caractere", então cobre "ab".
Restrições: 1 ≤ s.length ≤ 20 · 1 ≤ p.length ≤ 20 · s só tem letras minúsculas · p tem letras minúsculas, '.' e '*' · todo '*' vem depois de um caractere válido