L'exercice d'un sujet de bouton d'alimentation

10. Le match d'expression régulière

Donnez-vous une chaîne de caractères s et une loi p, vous invite à mettre en œuvre un support « » et « * » dans la correspondance d'expression régulière.

  « » Correspond à un seul caractère
  « * » correspond à zéro ou plus de l'élément précédent que l'
  on appelle l' appariement, afin de couvrir de la chaîne entière, et non une partie de la chaîne.

Description:

  s peut être vide, et que des lettres minuscules az du.
  p peut être vide et contenir des lettres minuscules que de az, et les caractères. et *.
  Exemple 1:

  Entrée:
    S = "AA"
    P = "A"
    Sortie: fausse
  interprétation: "a" peut ne pas correspondre à la chaîne entière "aa".
  Exemple 2:

  Entrée:
    S = « AA »
    P = « A * »
  Output: vrai
  explication: parce que les « * » correspond à zéro ou les représentants de ce qui précède que une pluralité d'éléments, ceci est en face de l'élément « a ». Ainsi, la chaîne « aa » peut être considéré comme « un » est répétée une fois.
  Exemple 3:

  Entrée:
    S = "ab &"
    P = "*."
  Output: vrai
  expliqué: "*" désigne zéro ou plusieurs correspondances ( '*') de caractère ( '').
  Exemple 4:

  Entrée:
    S = "AAB"
    P = "C * A * B"
  Output: vrai
  explication: parce que les '*' signifie zéro ou plus, où 'c' est 0, 'a' est répété une fois. Il peut donc correspondre à la chaîne « AAB ».
  Exemple 5:

  Entrée:
    S = "Mississippi"
    P = "MIS * EST * P *."
  Sortie: false

 


Classe Solution:
  def isMatch (auto, s: str, p: str) -> bool:
    dp = [[Faux] * (len (p) + 1) pour _ dans la plage (len (s) + 1)]

    dp [-1] [- 1] = Vrai
    pour i dans la plage (LEN (s), -1, -1):
      pour j dans la plage (len (p) - 1, -1, -1):
        first_match = i <len (s) et p [j] dans {s [i], ''}
        si j + 1 <len (p) et p [j + 1] == '*':
          dp [i] [j] = dp [i] [j + 2] ou first_match et dp [i + 1] [j]
        else:
          dp [i] [j] = first_match et dp [i + 1] [j + 1]
    dp de retour [0] [0]

Je suppose que tu aimes

Origine www.cnblogs.com/zhaop8078/p/12500264.html
conseillé
Classement