290. 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. Specifically:

Example 1:

Input: pattern = "abba", s = "dog cat cat dog"

Output: true

Explanation:

The bijection can be established as:

Example 2:

Input: pattern = "abba", s = "dog cat cat fish"

Output: false

Example 3:

Input: pattern = "aaaa", s = "dog cat cat dog"

Output: false

def wordPattern(self, pattern: str, s: str) -> bool:
	d = {}
	s = s.split(' ')
	if len(pattern) != len(s):
		return False
	for i in range(len(pattern)):
		if pattern[i] in d:
			if d[pattern[i]] != s[i]:
				return False
		else:
			if s[i] in d.values():
				return False
			d[pattern[i]] = s[i]
	return True