Advertisement
isebs

Untitled

Feb 28th, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(arr){
  2.     let pattern = /(#|\$|%|\*|&)(?<name>[A-Za-z]+)\1=(?<length>\d+)!!(?<code>.+)/;
  3.     let decrypted ='';
  4.     for(let j = 0; j < arr.length; j++) {
  5.         let result = pattern.exec(arr[j]);
  6.         if(result){
  7.             let len = Number(result.groups.length);
  8.             if(result.groups.code.length === len){
  9.                 for(let i = 0; i < result.groups.code.length; i++){
  10.                     decrypted += String.fromCharCode(result.groups.code.charCodeAt(i) + len);
  11.                 }
  12.                 console.log(`Coordinates found! ${result.groups.name} -> ${decrypted}`);
  13.                 break;
  14.             } else{
  15.                 console.log('Nothing found!');
  16.             }  
  17.         } else{
  18.             console.log('Nothing found!');
  19.         }
  20.     }
  21. }
  22. solve([
  23.     'Ian6Hutchinson=7!!\\(58ycb4',
  24.     "#MikeHailwood#!!'gfzxgu6768=11",
  25.     'slop%16!!plkdek/.8x11ddkc',
  26.     '$Steve$=9Hhffjh',
  27.     "*DavMolyneux*=15!!efgk#'_$&UYV%h%",
  28.     'RichardQ^uayle=16!!fr5de5kd'
  29.   ])
  30.                     console.log(`${cmd[1]} is already registered`);
  31.                 }
  32.                 break;
  33.             case 'Send':
  34.                 if (data[cmd[1]]){
  35.                     data[cmd[1]].sent++;
  36.                     data[cmd[1]].msgs.push(cmd[2]);
  37.                 }
  38.                 break;
  39.             case 'Delete':
  40.                 if (data[cmd[1]]) {
  41.                     delete data[cmd[1]];
  42.                 } else {
  43.                     console.log(`${cmd[1]} not found!`);
  44.                 }
  45.                 break;
  46.             case 'Statistics':
  47.                 let arr = Object.entries(data);
  48.                 console.log(`Users count: ${arr.length}`);
  49.                 let cmp = (a, b) => b[1].sent - a[1].sent || a[0].localeCompare(b[0]);
  50.                 arr = arr.sort(cmp);
  51.                 arr.forEach(i => {
  52.                     console.log(`${i[0]}`);
  53.                     i[1].msgs.forEach(i => console.log(`- ${i}`));
  54.                 });
  55.                 break;
  56.         }
  57.     }
  58. }
  59.                 break;
  60.             case 'Send':
  61.                 if (data[cmd[1]]){
  62.                     data[cmd[1]].sent++;
  63.                     data[cmd[1]].msgs.push(cmd[2]);
  64.                 }
  65.                 break;
  66.             case 'Delete':
  67.                 if (data[cmd[1]]) {
  68.                     delete data[cmd[1]];
  69.                 } else {
  70.                     console.log(`${cmd[1]} not found!`);
  71.                 }
  72.                 break;
  73.             case 'Statistics':
  74.                 let arr = Object.entries(data);
  75.                 console.log(`Users count: ${arr.length}`);
  76.                 let cmp = (a, b) => b[1].sent - a[1].sent || a[0].localeCompare(b[0]);
  77.                 arr = arr.sort(cmp);
  78.                 arr.forEach(i => {
  79.                     console.log(`${i[0]}`);
  80.                     i[1].msgs.forEach(i => console.log(`- ${i}`));
  81.                 });
  82.                 break;
  83.         }
  84.     }
  85. }
  86. solve( [
  87.   'Add->Mike',
  88.   'Add->George',
  89.   'Send->George->Hello World',
  90.   'Send->George->Some random test mail',
  91.   'Send->Mike->Hello, do you want to meet up tomorrow?',
  92.   'Send->George->It would be a pleasure',
  93.   'Send->Mike->Another random test mail',
  94.   'Statistics'
  95. ]
  96.    )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement