le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
LeetCode 290. Modelli di parole
Dato uno schema regolare e una stringa s, determinare se s segue lo stesso schema regolare.
La conformità qui si riferisce alla corrispondenza completa. Ad esempio, esiste una corrispondenza di connessione bidirezionale tra ogni lettera nel modello e ogni parola non vuota nella stringa s.
Esempio 1:
Input: modello = “abba”, s = “cane gatto gatto cane”
Risultato: vero
Esempio 2:
Input: modello = “abba”, s = “cane gatto gatto pesce”
Risultato: falso
Esempio 3:
Input: modello = “aaaa”, s = “cane gatto gatto cane”
Risultato: falso
suggerimento:
1 <= lunghezza del modello <= 300
il modello contiene solo lettere inglesi minuscole
1 <= lunghezza s. <= 3000
s contiene solo lettere inglesi minuscole e " "
s non contiene coppie di spazi iniziali o finali
Ogni parola in s è separata da un singolo spazio
Tabella hash, relazione di biiezione
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