Word Pattern
Given a pattern
and a string s
, find if s
follows the same pattern.
Here follow means a full match, such that there is a bijection between a letter in pattern
and a non-empty word in s
.
Example 1:
Input: pattern = "abba", s = "dog cat cat dog"
Output: true
Example 2:
Input: pattern = "abba", s = "dog cat cat fish"
Output: false
Example 3:
Input: pattern = "aaaa", s = "dog cat cat dog"
Output: false
Example 4:
Input: pattern = "abba", s = "dog dog dog dog"
Output: false
Constraints:
1 <= pattern.length <= 300
pattern
contains only lower-case English letters.1 <= s.length <= 3000
s
contains only lower-case English letters and spaces' '
.s
does not contain any leading or trailing spaces.All the words in
s
are separated by a single space.
Solutions
🐍 Python
class Solution:
def wordPattern(self, pattern: str, words: str) -> bool:
d = dict()
if len(pattern) != len(words.split()):
return False
for a, b in zip(pattern, words.split()):
if a in d.keys():
if d[a] != b:
return False
elif b not in d.values():
d[a] = b
else:
return False
return True
Last updated
Was this helpful?