τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Δεδομένου ενός κανονικού σχεδίου και μιας συμβολοσειράς s, προσδιορίστε εάν το s ακολουθεί το ίδιο κανονικό μοτίβο.
Η συμμόρφωση εδώ αναφέρεται στην πλήρη αντιστοίχιση Για παράδειγμα, υπάρχει μια αμφίδρομη αντιστοιχία σύνδεσης μεταξύ κάθε γράμματος σε μοτίβο και κάθε μη κενή λέξη στη συμβολοσειρά s.
Παράδειγμα 1:
Εισαγωγή: μοτίβο = "abba", s = "σκύλος γάτα σκύλος γάτα"
Έξοδος: true
Παράδειγμα 2:
Εισαγωγή: μοτίβο = "abba", s = "σκύλος γάτα-ψάρι γάτα"
Έξοδος: ψευδής
Παράδειγμα 3:
Εισαγωγή: μοτίβο = "aaaa", s = "σκύλος γάτα γάτα σκύλος"
Έξοδος: ψευδής
ίχνος:
1 <= σχέδιο.μήκος <= 300
Το μοτίβο περιέχει μόνο πεζά αγγλικά γράμματα
1 <= μήκος <= 3000
s περιέχει μόνο πεζά αγγλικά γράμματα και " "
Το s δεν περιέχει προπορευόμενα ή υστερούντα ζεύγη διαστημάτων
Κάθε λέξη στο s χωρίζεται από ένα μόνο διάστημα
Πίνακας κατακερματισμού, σχέση διχοτόμησης
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