kstoyanov

02. Mirror Words v1 js exam exec use

Aug 7th, 2020 (edited)
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.   const text = input.shift();
  3.   const pattern = /([#@])(?<firstWord>[A-Za-z]{3,})\1{2}(?<secondWord>[A-Za-z]{3,})\1/g;
  4.  
  5.   const mirrorWords = [];
  6.   let wordPairsCount = 0;
  7.   let match = pattern.exec(text);
  8.  
  9.   while (match) {
  10.     wordPairsCount++;
  11.     const { firstWord, secondWord } = match.groups;
  12.     const reversedFirstWord = firstWord.split('').reverse().join('');
  13.  
  14.     if (reversedFirstWord === secondWord) {
  15.       mirrorWords.push(`${firstWord} <=> ${secondWord}`);
  16.     }
  17.  
  18.     match = pattern.exec(text);
  19.   }
  20.  
  21.   if (wordPairsCount < 1) {
  22.     console.log('No word pairs found!');
  23.   } else {
  24.     console.log(`${wordPairsCount} word pairs found!`);
  25.   }
  26.  
  27.   if (mirrorWords.length < 1) {
  28.     console.log('No mirror words!');
  29.   } else {
  30.     console.log('The mirror words are:');
  31.     console.log(mirrorWords.join(', '));
  32.   }
  33. }
Add Comment
Please, Sign In to add comment