Menu
CoddyTech

Regular Expression Matching

On vous donne une chaîne s et un motif p. Dans le motif, une lettre correspond à cette même lettre, un point . correspond à n’importe quelle lettre, et un astérisque * signifie zéro ou plusieurs répétitions de l’élément qui le précède, c’est-à-dire une lettre ou un point. Renvoyez true si le motif correspond à toute la chaîne s, et pas seulement à une partie, et false dans le cas contraire.

Fonction

isMatch(s: string, p: string) → boolean
sstring
la chaîne à faire correspondre, lettres minuscules uniquement
pstring
le motif de lettres, de points et d’étoiles
Renvoieboolean
vrai si p correspond à l’ensemble de s, faux sinon

Contraintes

  • 1 ≤ s.length ≤ 1000
  • 1 ≤ p.length ≤ 1000
  • s ne contient que des lettres minuscules anglaises.
  • p contient uniquement des lettres minuscules de l’alphabet anglais, . et *.
  • Chaque * suit une lettre ou un ., donc p ne commence jamais par * et n’a jamais deux astérisques à la suite.

Exemples

Entrée
s = "moon"p = "mo*n"
Sortie
true
Explication
o* prend les deux lettres o, donc m, o* et n épellent exactement moon.

lock icon+29 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu également prendre en charge +, une ou plusieurs copies de l’élément qui le précède, avec le même tableau ?

Réinitialiser le code
def isMatch(s, p):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

true