Match Substring After Replacement LeetCode solution in JavaScript

1
/**
2
* @param {string} s
3
* @param {string} sub
4
* @param {character[][]} mappings
5
* @return {boolean}
6
*/
7
var matchReplacement = function (s, sub, mappings) {
8
let duy = {};
9
for (let i = 0; i < mappings.length; i++) {
10
if (duy[mappings[i][0]] == undefined) {
11
duy[mappings[i][0]] = mappings[i][1];
12
} else {
13
duy[mappings[i][0]] += mappings[i][1];
14
}
15
}
16
let vt = [];
17
for (let i = 0; i < s.length; i++) {
18
if (s[i] == sub[0]) {
19
vt.push(i);
20
}
21
}
22
if (duy[sub[0]] != undefined) {
23
for (let i = 0; i < s.length; i++) {
24
if (duy[sub[0]].indexOf(s[i]) >= 0) {
25
vt.push(i);
26
}
27
}
28
}
29

30
let lck = [],
31
cu = "";
32
for (let i = 0; i < vt.length; i++) {
33
cu = s.substr(vt[i], sub.length);
34
if (cu.length == sub.length) lck.push(cu);
35
}
36
console.log(lck.length);
37

38
let ck = "",
39
check = true;
40
for (let i = 0; i < lck.length; i++) {
41
ck = lck[i];
42
check = true;
43
for (let j = 0; j < ck.length; j++) {
44
if (ck[j] == sub[j] || (duy[sub[j]] && duy[sub[j]].indexOf(ck[j]) >= 0)) {
45
continue;
46
} else {
47
check = false;
48
break;
49
}
50
}
51
if (check) {
52
return true;
53
}
54
}
55
return false;
56
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0