Advertisement
Todorov_Stanimir

02. Anonymous Threat Fundam.Exam - 05 November 2017 Part I

Aug 20th, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. anonymousThreat = (input) => {
  2.     let arr = input.shift().split(' ');
  3.     for (let line of input) {
  4.         if (line === '3:1') {
  5.             break;
  6.         }
  7.         if (line.includes('merge')) {
  8.             let [, startIndex, endIndex] = line.split(' ').map(Number);
  9.             startIndex = Math.max(0, startIndex);
  10.             endIndex = Math.min(endIndex, arr.length);
  11.             let mergedPart = arr.splice(startIndex, endIndex+1 - startIndex).join('');
  12.             if (mergedPart !== '') {
  13.                 arr.splice(startIndex, 0, mergedPart)
  14.             }
  15.         } else {
  16.             let [, index, partitions] = line.split(' ').map(Number);
  17.             let partForDividin = arr[index];
  18.             if (partForDividin.length % partitions === 0) {
  19.                 let regexp = new RegExp(`[\\w\\W]{${partForDividin.length / partitions}}`, 'gi');
  20.                 let newElements = partForDividin.match(regexp);
  21.                 arr.splice(index, 1, ...newElements)
  22.             } else {
  23.                 let lengthPart = Math.floor(partForDividin.length / partitions);
  24.                 let lengthLastPart = lengthPart + partForDividin.length % partitions;
  25.                 let newElements = []
  26.                 for (let i = 0; i < partForDividin.length - lengthLastPart; i += lengthPart) {
  27.                     newElements.push(partForDividin.slice(i, i + lengthPart));
  28.                 }
  29.                 newElements.push(partForDividin.slice(partForDividin.length-lengthLastPart))
  30.                 arr.splice(index, 1, ...newElements)
  31.             }
  32.         }
  33.     }
  34.     console.log(arr.join(' '));
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement