JavaScript刷LeetCode -- 890. Find and Replace Pattern
阿新 • • 發佈:2018-12-23
一、題目
You have a list of words and a pattern, and you want to know which words in words matches the pattern.
A word matches the pattern if there exists a permutation of letters p so that after replacing every letter x in the pattern with p(x), we get the desired word.
(Recall that a permutation of letters is a bijection from letters to letters: every letter maps to another letter, and no two letters map to the same letter.)
Return a list of the words in words that match the given pattern.
You may return the answer in any order.
二、題目大意
根據pattern字串,在陣列words找出模式相匹配的字串。
三、解題思路
本題比較簡單
四、程式碼實現
const findAndReplacePattern = function (words, pattern) { let ans = [] for (let i = 0; i < words.length; i++) { if (compose(words[i], pattern)) { ans.push(words[i]) } } return ans function compose (element, pattern) { const m = new Map() const s = new Set() for (let i = 0; i < element.length; i++) { const x = pattern[i] const y = element[i] s.add(y) if (m.get(x) === undefined) { m.set(x, y) } else if (m.get(x) !== y) { return false } } return m.size === s.size } }
如果本文對您有幫助,歡迎關注我的微信公眾號【超愛敲程式碼】,為您推送更多內容,ε=ε=ε=┏(゜ロ゜;)┛。