Find and Replace Pattern LeetCode solution in Python

1
# Runtime: 47 ms (Top 36.0%) | Memory: 16.40 MB (Top 44.2%)
2

3

4
class Solution:
5
def findAndReplacePattern(self, words: List[str], pattern: str) -> List[str]:
6
d = {}
7
for i, v in enumerate(pattern):
8
if v in d:
9
d[v].append(i)
10
else:
11
d |= {v: [i]}
12
# DICTIONARY CONTAINING LETTERS AND THEIR INDICES
13
ans = []
14
for i in words:
15
e = {}
16
for j, v in enumerate(i):
17
if v in e:
18
e[v].append(j)
19
else:
20
e |= {v: [j]}
21
# DICTIONARY CONTAINING LETTERS OF INDICES OF CURRENT WORD
22
for u, v in zip(d.values(), e.values()):
23
# COMPARING EACH VALUE
24
if u != v:
25
break
26
# IF SUCCESSFUL APPEND TO ANS
27
else:
28
ans.append(i)
29
return ans

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0