leetcode之Word Pattern(290)

題目:

給定一種 pattern(模式) 和一個字符串 str ,判斷 str 是否遵循相同的模式。

這裏的遵循指完全匹配,例如, pattern 裏的每個字母和字符串 str 中的每個非空單詞之間存在着雙向連接的對應模式。

示例1:

輸入: pattern = "abba", str = "dog cat cat dog"
輸出: true

示例 2:

輸入:pattern = "abba", str = "dog cat cat fish"
輸出: false

示例 3:

輸入: pattern = "aaaa", str = "dog cat cat dog"
輸出: false

示例 4:

輸入: pattern = "abba", str = "dog dog dog dog"
輸出: false

說明:
你可以假設 pattern 只包含小寫字母, str 包含了由單個空格分隔的小寫字母。   

Python代碼:

class Solution(object):
    def wordPattern(self, pattern, str):
        pattern_l = list(pattern)
        str_l = str.split()
        mapping_dict = {}
        if len(pattern_l) != len(str_l):
            return False
        for i in range(len(pattern_l)):
            if pattern_l[i] not in mapping_dict:
                mapping_dict[pattern_l[i]] = str_l[i]
            elif mapping_dict[pattern_l[i]] != str_l[i]:
                return False
        mapval = [i for i in mapping_dict.values()]
        return len(mapval) == len(set(mapval))

心得:此題和leetcode之Isomorphic Strings(205)非常相似。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章