用模式的每个字母去当做key对应单词列表的每个字母value,
如果放进dict之前检测到key已经存在,就检测Word[i][j]是否是和已经存在的value一致,不一致就代表不匹配,break检查下一个Word
还有可能不一样的key对应了一样的value,这种情况也要去掉,把dict的value去重一下,比较长度有没有变化,没有变化就代表匹配,最后输出结果。
1 class Solution(object): 2 def findAndReplacePattern(self, words, pattern): 3 """ 4 :type words: List[str] 5 :type pattern: str 6 :rtype: List[str] 7 """ 8 result = [] 9 a = []10 flag = True11 for i in range(len(words)):12 dic = {}13 for j in range(len(words[i])):14 if pattern[j] not in dic:15 dic[pattern[j]] = words[i][j]16 elif dic[pattern[j]] != words[i][j]:17 flag = False18 break19 z = set(dic.values())20 21 if flag and len(z) == len(dic):22 result.append(words[i])23 a.append(dic)24 flag = True25 return result