Advertisement
tiberiugaspar

CodeSignal

Dec 18th, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //12
  2. function sortByHeight(a) {
  3.     for(var i=0;i<a.length;i++)
  4.         {
  5.             for(var j=0;j<a.length;j++)
  6.                 {   if(a[i]!=-1){
  7.                     if(a[i]<a[j])
  8.                         {
  9.                             var aux=a[i]
  10.                             a[i]=a[j]
  11.                             a[j]=aux
  12.                         }}
  13.                 }
  14.         }
  15.     return a
  16. }
  17.  
  18. //13
  19. function reverseInParentheses(inputString) {
  20. let output = "";
  21. let bracketContent = "";
  22. let bracketCounter = 0;
  23.  
  24. for (let i = 0; i < inputString.length; i++) {
  25.     let currentChar = inputString[i];
  26.    
  27.     switch (currentChar) {
  28.         case "(":
  29.             if (bracketCounter !== 0) {
  30.                 bracketContent += currentChar;
  31.             }
  32.             bracketCounter++;
  33.             break;
  34.         case ")":
  35.             if (bracketCounter !== 1) {
  36.                 bracketContent += currentChar;
  37.             }
  38.             if (bracketCounter === 1) {
  39.                 output += reverseInParentheses(bracketContent).split("").reverse().join("");
  40.                 bracketContent = "";    
  41.             }
  42.             bracketCounter--;
  43.             break;
  44.         default: if (bracketCounter === 0){
  45.                 output += currentChar;
  46.             } else {
  47.                 bracketContent += currentChar;
  48.             }
  49.             break;
  50.     }
  51. }
  52. return output;
  53. }
  54.  
  55. //14
  56. function alternatingSums(a) {
  57. var team1=0;
  58. var team2=0;
  59. for (var i=0;i<a.length;i++)
  60.     {
  61.         if(i%2==0)
  62.             team1+=a[i]
  63.         else
  64.             team2+=a[i]
  65.     }
  66. var output=[team1,team2]
  67. return output
  68. }
  69.  
  70. //15
  71. function addBorder(picture) {
  72. var l=picture.length;
  73. var output=[];
  74. var row=[];
  75. for(var i=0;i<picture[0].length+2;i++)
  76.     {
  77.         row.push("*")
  78.     }
  79. row=row.join("");
  80. output.push(row);
  81. for(var i=0;i<l;i++)
  82.     {
  83.         var array=picture[i].split()
  84.         array.push("*");
  85.         array.unshift("*");
  86.         array=array.join("");
  87.         output.push(array);
  88.     }
  89. output.push(row);
  90. return output
  91. }
  92.  
  93. //16
  94. function areSimilar(a, b) {
  95.     var x = new Array();
  96.     for (let i = 0; i < a.length; i++) {
  97.         if (a[i] != b[i]){
  98.             if (x.length == 2) return false;
  99.             x.push(i);
  100.         }
  101.     }
  102.     if (x.length == 0) return true;
  103.     if (a[x[0]] == b[x[1]] && a[x[1]] == b[x[0]]) return true;
  104.     return false;
  105. }
  106. //17
  107. function arrayChange(inputArray) {
  108. var c=0;
  109.     for(var i=1;i<inputArray.length;i++)
  110.         {
  111.             while(inputArray[i]<=inputArray[i-1])
  112.             {
  113.              c++
  114.              inputArray[i]++
  115.             }
  116.         }
  117. return c;
  118. }
  119. //18
  120. function palindromeRearranging(a) {
  121. var map = {};
  122. var sum = 0;
  123. for(var i = 0; i<a.length; i++) {      
  124.     sum += ((map[a[i]] = -~map[a[i]])%2) *2 - 1
  125. }    
  126. return (sum == 0 || sum == 1)  
  127. }
  128. //19
  129. function areEquallyStrong(yourLeft, yourRight, friendsLeft, friendsRight) {
  130. if(yourLeft==friendsLeft && yourRight==friendsRight) return true
  131. if(yourLeft==friendsRight && yourRight==friendsLeft) return true
  132. return false
  133. }
  134. //20
  135. function arrayMaximalAdjacentDifference(inputArray) {
  136. var max=0
  137. for(var i=1;i<inputArray.length;i++)
  138.     {
  139.         var dif1=inputArray[i-1]-inputArray[i]
  140.         var dif2=inputArray[i]-inputArray[i-1]
  141.         var dif=Math.max(dif1,dif2)
  142.         if(dif>max)
  143.          max=dif
  144.     }
  145.     return max
  146. }
  147. //21
  148. function isIPv4Address(inputString) {
  149. var x=inputString.split(".");
  150. if(x.length!=4) return false
  151. for(var i=0;i<x.length;i++)
  152.     {  
  153.         if(x[i]==="") return false
  154.         if(!isNaN(x[i]))
  155.             {
  156.                 if(x[i]>255) return false
  157.             }
  158.         else return false
  159.     }
  160.  
  161. return true
  162. }
  163. //22
  164. function avoidObstacles(inputArray) {
  165. var jump=2;
  166. var i=0;
  167. while(i<inputArray.length){
  168.     if(inputArray[i]%jump===0)
  169.         {
  170.             jump+=1
  171.             i=0
  172.             continue;
  173.         }
  174.     i+=1
  175.  }
  176.     return jump
  177. }
  178. //23
  179. function boxBlur(image) {
  180. var imgArray= [];
  181.     for(var y=0; y<image.length-2;y++)
  182.     {
  183.         var line=[];
  184.         for(var x=0; x<image[y].length-2;x++)
  185.             {
  186.                 var sum=0;
  187.                 for(var a=y;a<y+3;a++)
  188.                     {
  189.                         for( var b=x;b<x+3;b++){
  190.                             sum+=image[a][b];
  191.                         }
  192.                     }
  193.                 line.push(Math.floor(sum/9));
  194.             }
  195.        imgArray.push(line);
  196.     }
  197.   return imgArray;
  198. }
  199. //24
  200. function arrayReplace(inputArray, elemToReplace, substitutionElem) {
  201. var output=[]
  202. for(var i=0;i<inputArray.length;i++)
  203.     {  
  204.         output.push(inputArray[i])
  205.         if(inputArray[i]==elemToReplace){
  206.             output.pop();
  207.             output.push(substitutionElem);
  208.         }
  209.            
  210.     }
  211. return output
  212. }
  213. //25
  214. function arrayReplace(inputArray, elemToReplace, substitutionElem) {
  215. var output=[]
  216. for(var i=0;i<inputArray.length;i++)
  217.     {  
  218.         output.push(inputArray[i])
  219.         if(inputArray[i]==elemToReplace){
  220.             output.pop();
  221.             output.push(substitutionElem);
  222.         }
  223.            
  224.     }
  225. return output
  226. }
  227. //26
  228. function evenDigitsOnly(n) {
  229. var a=n.toString()
  230. var output=true;
  231. for(var i=0;i<a.length;i++)
  232.     {
  233.         if(a[i]%2!=0) {
  234.             output=false;
  235.         }
  236.            
  237.     }
  238. return output
  239.  
  240. }
  241. //27
  242. function alphabeticShift(inputString) {
  243. var abc="abcdefghijklmnopqrstuvwxyza";
  244. var rezultat="";
  245. for(var i=0;i<inputString.length;i++){
  246.     for(var j=0;j<abc.length;j++){
  247.         if(inputString[i]==abc[j])
  248.             {
  249.                 rezultat+=abc[j+1]
  250.                 break;
  251.             }
  252.     }
  253. }
  254.  return rezultat;
  255.  
  256. }
  257. //28
  258. function alphabeticShift(inputString) {
  259. var abc="abcdefghijklmnopqrstuvwxyza";
  260. var rezultat="";
  261. for(var i=0;i<inputString.length;i++){
  262.     for(var j=0;j<abc.length;j++){
  263.         if(inputString[i]==abc[j])
  264.             {
  265.                 rezultat+=abc[j+1]
  266.                 break;
  267.             }
  268.     }
  269. }
  270.  return rezultat;
  271.  
  272. }
  273. //29
  274. function chessBoardCellColor(cell1, cell2) {
  275.     var aceg="ACEG".split('')
  276.     var bdfh="BDFH".split('')
  277.     if(aceg.includes(cell1[0])&&cell1[1]%2==0){
  278.        var c1Color=1;
  279.     }
  280.     if(aceg.includes(cell1[0])&&cell1[1]%2==1)
  281.         c1Color=0;
  282.     if(bdfh.includes(cell1[0])&&cell1[1]%2==1)
  283.         c1Color=1;
  284.      if(bdfh.includes(cell1[0])&&cell1[1]%2==0)
  285.         c1Color=0;
  286.     if(aceg.includes(cell2[0])&&cell2[1]%2==0){
  287.        var c2Color=1;
  288.     }
  289.     if(aceg.includes(cell2[0])&&cell2[1]%2==1)
  290.         c2Color=0;
  291.     if(bdfh.includes(cell2[0])&&cell2[1]%2==1)
  292.         c2Color=1;
  293.      if(bdfh.includes(cell2[0])&&cell2[1]%2==0)
  294.         c2Color=0;
  295.    
  296.     return c1Color==c2Color
  297. }
  298. //30
  299. function circleOfNumbers(n, firstNumber) {
  300.     if(firstNumber>=n/2){
  301.          return firstNumber-n/2;
  302.         }
  303.     return firstNumber+n/2;
  304. }
  305. //31
  306. function depositProfit(deposit, rate, threshold) {
  307. var c=0;
  308. while(deposit<threshold)
  309.     {
  310.         var rata=rate/100*deposit;
  311.         deposit+=rata;
  312.         c++;
  313.     }
  314. return c
  315. }
  316. //32
  317. function absoluteValuesSumMinimization(a) {
  318.  return a[Math.floor((a.length-1)/2)];
  319. }
  320. //33
  321. function isNext(string1,string2){
  322.     var diff=0;
  323.     for(var i=0;i<string1.length;i++){
  324.         if(string1[i]!=string2[i])
  325.             diff++;
  326.     }
  327.     if (diff!=1)
  328.         return false;
  329.     else
  330.         return true;
  331. }
  332.  
  333. function arranged(array){
  334.     var chars=true;
  335.     for(var i=0;i+1<array.length&&chars;i++){
  336.         if(!isNext(array[i],array[i+1]))
  337.             chars=false;
  338.     }
  339.     return chars;
  340. }
  341.  
  342. function findNext(string,string_i,array){
  343.     var index=-1;
  344.     for(var i=0;i<array.length&&index==-1;i++){
  345.         if(isNext(string,array[i]))
  346.             index=i;
  347.     }
  348.     return index;
  349. }
  350.  
  351. function stringsRearrangement(inputArray) {
  352.     var next=0;
  353.     inputArray.sort();
  354.     for(var i=0;i<inputArray.length&&next>=0&&!arranged(inputArray);i++){
  355.         next=findNext(inputArray[i],i,inputArray);
  356.         if(next>=0&&(next>i+1||next<i-1)){
  357.             inputArray.splice(i+1,0,inputArray[next])
  358.             if(next<i+1)
  359.                 inputArray.splice(next,1);
  360.             else
  361.                 inputArray.splice(next+1,1);
  362.         }
  363.     }
  364.     return arranged(inputArray);
  365. }
  366. //34
  367. function extractEachKth(inputArray, k) {
  368.    
  369. var index=[];
  370. var c=0;
  371.     for(var i=0; i<inputArray.length; i++)
  372.         {
  373.             index.push(inputArray[i]);
  374.             c++;
  375.             if(c==k){
  376.                 index.pop();
  377.                 c=0;
  378.             }
  379.         }
  380. return index;
  381. }
  382. //35
  383. function firstDigit(inputString) {
  384. for(var i=0; i<inputString.length; i++)
  385.     {
  386.         if(/[0-9]/.test(inputString[i])){
  387.            return inputString[i];
  388.         }
  389.     }
  390. return null;
  391. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement