Leetcode-290题:Word Pattern

题目

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.

代码

class Solution(object):
    def wordPattern(self, pattern, str):
        """
        :type pattern: str
        :type str: str
        :rtype: bool
        """
        if pattern==None or str==None or pattern=='' or str=='':
            return False
        items = str.split(' ')
        if len(items) != len(pattern):
            return False
        w_p = {}
        p_w = {}
        for w,p in zip(items,pattern):
            if w not in w_p and p not in p_w:
                w_p[w] = p
                p_w[p] = w
            elif w in w_p:
                if p != w_p[w]:
                    return False
            elif p in p_w:
                if w != p_w[p]:
                    return False
        return True
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容