2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Bestimmen Sie anhand eines regelmäßigen Musters und einer Zeichenfolge s, ob s demselben regelmäßigen Muster folgt.
Unter Compliance versteht man hier beispielsweise eine wechselseitige Verbindungskorrespondenz zwischen jedem Buchstaben im Muster und jedem nicht leeren Wort in der Zeichenfolge s.
Beispiel 1:
Eingabe: Muster = „abba“, s = „Hund, Katze, Katze, Hund“
Ausgabe: wahr
Beispiel 2:
Eingabe: Muster = „abba“, s = „Hund Katze Katze Fisch“
Ausgabe: falsch
Beispiel 3:
Eingabe: Muster = „aaaa“, s = „Hund, Katze, Katze, Hund“
Ausgabe: falsch
Hinweis:
1 <= Musterlänge <= 300
Das Muster enthält nur englische Kleinbuchstaben
1 <= s.Länge <= 3000
s enthält nur englische Kleinbuchstaben und ''
s enthält keine führenden oder nachgestellten Leerzeichenpaare
Jedes Wort in s wird durch ein einzelnes Leerzeichen getrennt
Hash-Tabelle, Bijektionsbeziehung
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