[290] Word Pattern
https://leetcode.com/problems/word-pattern/description/
- algorithms
- Easy (34.14%)
- Source Code: 290.word-pattern.py
- Total Accepted: 136.2K
- Total Submissions: 391.6K
- Testcase Example: '"abba"\n"dog cat cat dog"'
Given a pattern and a string str, find if str 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 str.
Example 1:
Input: pattern = "abba", str = "dog cat cat dog" Output: true
Example 2:
Input:pattern = "abba", str = "dog cat cat fish" Output: false
Example 3:
Input: pattern = "aaaa", str = "dog cat cat dog" Output: false
Example 4:
Input: pattern = "abba", str = "dog dog dog dog" Output: false
Notes: You may assume pattern contains only lowercase letters, and str contains lowercase letters that may be separated by a single space.
python
class Solution(object):
def wordPattern(self, pattern, str):
"""
:type pattern: str
:type str: str
:rtype: bool
"""
table = {}
slist = str.split()
if not len(slist) == len(pattern): return False
for idx, p in enumerate(pattern):
if p not in table:
table[p] = slist[idx]
else:
if table[p] != slist[idx]: return False
values = table.values()
if len(set(values)) < len(values): return False
return True