Skip to content

Latest commit

 

History

History
69 lines (43 loc) · 1.77 KB

290.单词规律.md

File metadata and controls

69 lines (43 loc) · 1.77 KB

290.单词规律

https://leetcode-cn.com/problems/word-pattern/

难度:简单

题目:

给定一种规律 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

分析

这道题str首先需要使用split拆分为列表,然后计算len(str)是否与len(pattern)相等,若不相等返回False。

然后我们需要使用到hash表的匹配来交错赋值,最终计算答案是否匹配。

解题:

class Solution:
    def wordPattern(self, pattern, s):
        s = s.split()
        if len(pattern) != len(s):
            return False
        x = {}
        y = {}
        for i in range(len(pattern)):
            if (pattern[i] in x and x[pattern[i]] != s[i]) or (s[i] in y and y[s[i]] != pattern[i]):
                return False
            x[pattern[i]] = s[i]
            y[s[i]] = pattern[i]
        return True

欢迎关注我的公众号: 清风Python,带你每日学习Python算法刷题的同时,了解更多python小知识。

有喜欢力扣刷题的小伙伴可以加我微信(King_Uranus)互相鼓励,共同进步,一起玩转超级码力!

我的个人博客:https://qingfengpython.cn

力扣解题合集:https://github.com/BreezePython/AlgorithmMarkdown