Match Substring After Replacement LeetCode solution in Java

1
class Solution {
2
public boolean matchReplacement(String s, String sub, char[][] mappings) {
3
HashMap<Character, HashSet<Character>> m = new HashMap<>();
4
for (char[] carr : mappings) {
5
if (!m.containsKey(carr[0])) {
6
m.put(carr[0], new HashSet<Character>());
7
}
8
m.get(carr[0]).add(carr[1]);
9
}
10
int len_s = s.length();
11
int len_sub = sub.length();
12
for (int pos = 0; pos < s.length(); pos++) {
13
int i = pos;
14
int j = 0;
15
boolean cont = false;
16
while (j <= sub.length()) {
17
if (j == sub.length()) return true;
18
int lenlefts = len_s - i;
19
int lenleftsub = len_sub - j;
20
if (lenlefts < lenleftsub) {
21
break;
22
} else if ((s.charAt(i) == sub.charAt(j))
23
|| (m.containsKey(sub.charAt(j)) && m.get(sub.charAt(j)).contains(s.charAt(i)))) {
24
i += 1;
25
j += 1;
26
} else {
27
break;
28
}
29
}
30
}
31
return false;
32
}
33
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0