关闭

[leetcode][290]Word Pattern

113人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:163725次
    • 积分:3699
    • 等级:
    • 排名:第8799名
    • 原创:198篇
    • 转载:18篇
    • 译文:3篇
    • 评论:48条
    weibo
    github
    文章分类
    最新评论