Facebook
From Nikolay, 4 Years ago, written in JavaScript.
Embed
Download Paste or View Raw
Hits: 664
  1. function solve(input) {
  2.     let myStr = input.slice(0, 1)[0];
  3.  
  4.     for (const line of input.slice(1)) {
  5.         let [cmd, index, value] = line.split('|');
  6.         if (cmd == 'Decode') {
  7.             console.log(`The decrypted message is: ${myStr}`)
  8.             break;
  9.         } else {
  10.             switch (cmd) {
  11.                 case 'ChangeAll':
  12.                     changeAll(index, value)
  13.                     break;
  14.                 case 'Insert':
  15.                     insert(index, value)
  16.                     break;
  17.                 case 'Move':
  18.                     move(index)
  19.                     break;
  20.  
  21.                 default:
  22.                     break;
  23.             }
  24.         }
  25.  
  26.     }
  27.  
  28.     function changeAll(subStr, replacement) {
  29.         if (myStr.includes(subStr)) {                        // 50/100
  30.             let pattern = RegExp(subStr, 'g');               // ------
  31.             myStr = myStr.replace(pattern, replacement)      // ------
  32.         }                                                    // ------
  33.  
  34.  
  35.  
  36.         // while(myStr.includes(subStr)){                   // 100/100
  37.  
  38.         //     myStr = myStr.replace(subStr,replacement);   // --------
  39.         // }                                                // --------
  40.     }
  41.  
  42.     function insert(index, value) {
  43.         let validation = Number(index) >= 0 && Number(index) <= myStr.length;
  44.         if (validation) {
  45.             let newStr = myStr.split('')
  46.             newStr.splice(+index, 0, value)
  47.             myStr = newStr.join('')
  48.         }
  49.     }
  50.  
  51.     function move(indexEnd) {
  52.         let validation = Number(indexEnd) >= 0 && Number(indexEnd) <= myStr.length;
  53.         if (validation) {
  54.             let newStr = myStr.split('')
  55.             newStr = [...newStr.slice(+indexEnd), ...newStr.slice(0, +indexEnd)]
  56.             myStr = newStr.join('');
  57.         }
  58.     }
  59. }