nikolayneykov

Untitled

Mar 7th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(params) {
  2.     let bestDna = [];
  3.     let bestSample = 1;
  4.     let bestSum = -1;
  5.     let bestSequenceLength = -1;
  6.     let bestSequenceIndex = Number.MAX_SAFE_INTEGER;
  7.  
  8.     for (let i = 1; i < params.length - 1; i++) {
  9.         let currentDna = params[i].split('').filter(e => e === '1' || e === '0').join('');
  10.         let currentSample = i;
  11.         let currentSum = currentDna.split('').filter(e => e === '1').length;
  12.  
  13.         let bestSequence = currentDna.split('0').sort((a, b) => b.length - a.length)[0];
  14.         let currentIndex = currentDna.indexOf(bestSequence);
  15.         let foundBetterDna = false;
  16.  
  17.         if (bestSequenceLength < bestSequence.length) {
  18.             foundBetterDna = true;
  19.         } else if (bestSequenceLength === bestSequence.length &&
  20.             bestSequenceIndex > currentIndex) {
  21.             foundBetterDna = true;
  22.  
  23.         } else if (bestSequenceLength === bestSequence.length &&
  24.             bestSequenceIndex === currentIndex &&
  25.             bestSum < currentSum) {
  26.             foundBetterDna = true;
  27.         }
  28.  
  29.         if (foundBetterDna) {
  30.             bestDna = currentDna.split('').join(' ');
  31.             bestSample = currentSample;
  32.             bestSum = currentSum;
  33.             bestSequenceLength = bestSequence.length;
  34.             bestSequenceIndex = currentIndex;
  35.         }
  36.     }
  37.  
  38.  
  39.     console.log(`Best DNA sample ${bestSample} with sum: ${bestSum}.\n${bestDna}`);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment