单词规律Python解法

242 阅读1分钟

 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。

这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。

来源:力扣(LeetCode)
链接:leetcode-cn.com/problems/wo…  

例:

输入: 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))  # 合并后可以判断位置是否正确

\