View difference between Paste ID: PrBipmA0 and Xwn8YSkc
SHOW: | | - or go back to the newest paste.
1
function solve(input = []) {
2
  let pattern = /(@|#)(?<partOne>[A-Za-z]{3,})\1\1(?<partTwo>[A-Za-z]{3,})\1/g;
3
  let text = input.shift();
4
  let valids = pattern.exec(text);
5
  let validsCounter = 0;
6
  let mirrorPairs = [];
7
  let hasValids = false;
8
9
  while (valids) {
10
    hasValids = true;
11
    let partOne = valids[2];
12
    let partTwo = valids[3];
13
    let partTwoReversed = valids[3].split("").reverse().join("");
14
    let currentMirrorPair = "";
15
16
    if (partOne === partTwoReversed) {
17
      currentMirrorPair = partOne + " <=> " + partTwo;
18
      mirrorPairs.push(currentMirrorPair);
19
    }
20
    validsCounter++;
21
    valids = pattern.exec(text);
22
  }
23
24
  if (!hasValids) {
25
    console.log("No word pairs found!");
26
  } else {
27
    console.log(`${validsCounter} word pairs found!`);
28
  }
29
30
  if (mirrorPairs.length === 0) {
31
    console.log("No mirror words!");
32
  } else {
33
    console.log("The mirror words are:");
34
    console.log(mirrorPairs.join(", "));
35
  }
36
}