leetcode 290. 单词规律(简单)

leetcode 290. 单词规律(简单)

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

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

示例1:

输入: pattern = “abba”, str = “dog cat cat dog”
输出: true

示例 2:

输入:pattern = “abba”, str = “dog cat cat fish”
输出: false

示例 3:

输入: pattern = “aaaa”, str = “dog cat cat dog”
输出: false

示例 4:

输入: pattern = “abba”, str = “dog dog dog dog”
输出: false

步骤

将s利用split按空格分成一个数组str1,如果str1和pattern长度不同则直接报错。
接下里就是用字典存储pattern中每个字符对应的字符串,这里有个坑,如果有两个字符串对应同一个字符也会报错,代码理解起来很简单。

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

你可能感兴趣的:(leetcode,python,leetcode)