给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/word-pattern
例:
输入: pattern = "abba", str = "dog cat cat dog" 输出: true
解析:
不要从单个字符判断,而是从规律判断,用set进行去重就可以达到这种效果。
class Solution(object):
def wordPattern(self, pattern, s):
"""
:type pattern: str
:type s: str
:rtype: bool
"""
s1 = s.split(' ') # 用空格符进行分隔
if len(pattern) != len(s1): # 数目都不相同
return False
return len(set(zip(pattern, s1))) == len(set(pattern)) == len(set(s1)) # 合并后可以判断位置是否正确