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>());8
m.get(carr[0]).add(carr[1]);10
int len_s = s.length();11
int len_sub = sub.length();12
for (int pos = 0; pos < s.length(); pos++) {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) {22
} else if ((s.charAt(i) == sub.charAt(j))23
|| (m.containsKey(sub.charAt(j)) && m.get(sub.charAt(j)).contains(s.charAt(i)))) {