890. 查找和替换模式

exiaohu 于 2022-06-12 发布

题目链接:890. 查找和替换模式

直接模拟。

from typing import List


class Solution:
    def findAndReplacePattern(self, words: List[str], pattern: str) -> List[str]:
        def match(word: str) -> bool:
            if len(word) != len(pattern):
                return False

            mapping, mapping2 = dict(), dict()
            for w, p in zip(word, pattern):
                if w in mapping and mapping[w] != p:
                    return False
                elif w in mapping:
                    continue
                elif w not in mapping and p in mapping2:
                    return False
                elif w not in mapping and p not in mapping2:
                    mapping[w], mapping2[p] = p, w

            return True

        return list(filter(match, words))