-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path__E__find-and-replace-pattern.js
90 lines (70 loc) · 2.36 KB
/
__E__find-and-replace-pattern.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// https://leetcode.com/problems/find-and-replace-pattern/
const c = console.log.bind(console);
var findAndReplacePattern = function(words, pattern) {
let map = new Map();
pattern.split("").forEach((item, i) => {
map.get(item) ? map.set(item, String(map.get(item)) + i) : map.set(item, String(i)); //saving indexes
});
let checkArr = []
for (let [key, value] of map.entries()) {
checkArr.push(value)
}
return words.filter((item) => {
let map = new Map();
item.split('').forEach((item, i) => {
map.get(item) ? map.set(item, String(map.get(item)) + i) : map.set(item, String(i));
});
let check = []
for (let [key, value] of map.entries()) {
check.push(value)
}
if (check.length == checkArr.length) {
let bool = false;
try {
checkArr.forEach((elem, i) => {
if (parseInt(elem) == parseInt(check[i])) {
bool = true;
} else {
bool = false;
throw "shit"
}
})
} catch (err) {
}
if (bool) {
return item;
}
}
});
};
//from community
// var findAndReplacePattern = function(words, pattern) {
// let result = [];
// words.forEach((item) => {
// let mapper = new Map();
// let values = new Set();
// for (let idx = 0; idx < item.length; idx++) {
// if (!pattern[idx]) break;
// if (mapper.has(item[idx])) {
// if (mapper.get(item[idx]) !== pattern[idx]) {
// break;
// }
// } else {
// if (values.has(pattern[idx])) {
// break;
// }
// mapper.set(item[idx], pattern[idx]);
// values.add(pattern[idx]);
// }
// if (item.length - 1 === idx) {
// result.push(item);
// }
// }
// });
// return result;
// };
c(findAndReplacePattern(["abc", "deq", "mee", "aqq", "dkd", "ccc"], "abb"));
c(findAndReplacePattern(['a', 'b', 'c'], 'a'))
c(findAndReplacePattern(["badc", "abab", "dddd", "dede", "yyxx"], "baba"))
c(findAndReplacePattern(["qqcojjumwp", "mqidrqudxu", "xwrvnueult", "lubbymxyro", "fcvxuskhcl"],
"rdzkpkbmda"))