美文网首页
Leetcode-290题:Word Pattern

Leetcode-290题:Word Pattern

作者: 八刀一闪 | 来源:发表于2016-10-11 21:24 被阅读71次

题目

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

相关文章

网友评论

      本文标题:Leetcode-290题:Word Pattern

      本文链接:https://www.haomeiwen.com/subject/zobbyttx.html