Leetcode 926 Solution
This article provides solution to leetcode question 926 (find-and-replace-pattern).
Access this page by simply typing in "lcs 926" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/find-and-replace-pattern
Solution
class Solution:
    def findAndReplacePattern(self, words: List[str], pattern: str) -> List[str]:
        def match(word, pattern):
            if len(word) != len(pattern):
                return False
            m = {}
            s = set()
            for w, p in zip(word, pattern):
                if p not in m and w in s:
                    return False
                if p in m and m[p] != w:
                    return False
                m[p] = w
                s.add(w)
            return True
        ans = []
        for word in words:
            if match(word, pattern):
                ans.append(word)
        return ans