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.
Examples:
- pattern =
"abba", str ="dog cat cat dog"should return true. - pattern =
"abba", str ="dog cat cat fish"should return false. - pattern =
"aaaa", str ="dog cat cat dog"should return false. - pattern =
"abba", str ="dog dog dog dog"should return false.
Notes:
You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single space.
Credits:
Special thanks to @minglotus6 for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
class Solution(object):
def wordPattern(self, pattern, str):
#print pattern,str
p = pattern
str = str.split(' ')
#print str
dic = {}
#print dic,len(str)
if len(str) != len(p):
return False
for i in xrange(len(str)):
if p[i] not in dic:
if str[i] in dic.values():
return False
dic[p[i]] = str[i]
else:
if dic[p[i]] != str[i]:
return False
return True

本文介绍了一种用于判断字符串是否遵循给定模式的算法。通过建立字母与非空单词之间的双射映射,该算法能够有效地解决模式匹配问题,并提供了具体的实现代码及示例。
1397

被折叠的 条评论
为什么被折叠?



