2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Étant donné un modèle régulier et une chaîne s, déterminez si s suit le même modèle régulier.
La conformité fait ici référence à une correspondance complète. Par exemple, il existe une correspondance de connexion bidirectionnelle entre chaque lettre du modèle et chaque mot non vide de la chaîne s.
Exemple 1:
Entrée : motif = « abba », s = « chien chat chat chien »
Résultat : vrai
Exemple 2 :
Entrée : motif = « abba », s = « chien chat chat poisson »
Résultat : faux
Exemple 3 :
Entrée : motif = « aaaa », s = « chien chat chat chien »
Résultat : faux
indice:
1 <= motif.longueur <= 300
le motif ne contient que des lettres anglaises minuscules
1 <= longueur s <= 3000
s contient uniquement des lettres anglaises minuscules et « »
s ne contient aucune paire d'espaces de début ou de fin
Chaque mot de s est séparé par un seul espace
Table de hachage, relation de bijection
class Solution:
def wordPattern(self, pattern: str, s: str) -> bool:
length = len(pattern)
sub_strs = s.split()
if len(pattern) != len(sub_strs):
return False
d1, d2 = {}, {}
for i in range(length):
if pattern[i] in d1:
if d1[pattern[i]] != sub_strs[i]:
return False
if sub_strs[i] in d2:
if d2[sub_strs[i]] != pattern[i]:
return False
d1[pattern[i]] = sub_strs[i]
d2[sub_strs[i]] = pattern[i]
return True