[leetcode][290]Word Pattern

来源:互联网 发布:新版淘宝淘抢购在哪 编辑:程序博客网 时间:2024/06/04 23:55

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:

  1. pattern = "abba", str = "dog cat cat dog" should return true.
  2. pattern = "abba", str = "dog cat cat fish" should return false.
  3. pattern = "aaaa", str = "dog cat cat dog" should return false.
  4. pattern = "abba", str = "dog dog dog dog" should return false.

Notes:
You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single space.

class Solution(object):    def wordPattern(self, pattern, astr):        """        :type pattern: str        :type str: astr        :rtype: bool        """        temp  = astr.split()        if len(temp) != len(pattern):            return False        p = {}        q = {}        for a,b in zip(pattern, temp):            if b in p:                if a != p[b]:                    return False            else:                p[b] = a            if a in q:                if b != q[a]:                    return False            else:                q[a] = b        return True                            



0 0
原创粉丝点击