美文网首页
290. Word Pattern

290. Word Pattern

作者: a_void | 来源:发表于2016-09-25 11:41 被阅读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:
    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.

    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, str):
            """
            :type pattern: str
            :type str: str
            :rtype: bool
            """
            arr = str.split(" ")
            if len(arr) != len(pattern):
                return False
            f1 = {}
            i = 0
            for x in pattern:
                if x in f1.keys():
                    f1[x].append(i)
                else:
                    f1[x] = [i];
                i+=1
            
            f2 = {}
            i = 0
            for x in arr:
                if x in f2.keys():
                    f2[x].append(i)
                else:
                    f2[x] = [i]
                i+=1
            for x in f1.values():
                if x not in f2.values():
                    return False
            return True
    

    相关文章

      网友评论

          本文标题:290. Word Pattern

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