From d0713390fa68b1ef58060103e01e9c53112d1ad9 Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 10:59:03 +0100 Subject: [PATCH 01/10] Armand's assignment --- .DS_Store | Bin 0 -> 6148 bytes Week1/.DS_Store | Bin 0 -> 6148 bytes Week1/assignments/Armand-Collins/Anagrams.js | 70 ++++++++++++++++++ Week1/assignments/Armand-Collins/BinaryGap.js | 43 +++++++++++ Week1/assignments/Armand-Collins/CountWays.js | 12 +++ Week1/assignments/Armand-Collins/Crossword.js | 0 Week1/assignments/Armand-Collins/Dominator.js | 29 ++++++++ Week1/assignments/Armand-Collins/PowerSum.js | 24 ++++++ Week1/assignments/Armand-Collins/Staircase.js | 13 ++++ .../assignments/Armand-Collins/palindrome.js | 30 ++++++++ 10 files changed, 221 insertions(+) create mode 100644 .DS_Store create mode 100644 Week1/.DS_Store create mode 100644 Week1/assignments/Armand-Collins/Anagrams.js create mode 100644 Week1/assignments/Armand-Collins/BinaryGap.js create mode 100644 Week1/assignments/Armand-Collins/CountWays.js create mode 100644 Week1/assignments/Armand-Collins/Crossword.js create mode 100644 Week1/assignments/Armand-Collins/Dominator.js create mode 100644 Week1/assignments/Armand-Collins/PowerSum.js create mode 100644 Week1/assignments/Armand-Collins/Staircase.js create mode 100644 Week1/assignments/Armand-Collins/palindrome.js diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f6e2d776f7b55b4d70bd039905a31e241a12c85a GIT binary patch literal 6148 zcmeHK-EPw`6h7WEmKLE^2x)Ma8ze3!)QDeMAJmyl|U=#r^Tsh||) zhIc^l1iT6_z=QAr@EzMgla<>FkWXcQ$M*S-<1dO`6OnMoVU4IlL^cYeRYtYIc$~`_ zThTqt6P%+xNL~bkBtV-J8Z!zQ1^#XY_}jJUIvr6&Y2o|5iLqPK;ZD9KUS zN652-C=Qc}n~dXdB=dM`z_v?vsaLr&oz`~ts$0&^?)GfUneOjPe|I)3*_&5ux7vp% zuis4H&fa~*dSC+kwzLh6Kj9Ocxi!A>hVdYYkI>7E-y_=vo%nq(*6Bt*Qoh^yNDz%J zRRR6(?ej~W)l6m-Fbez&3h@5mpfJ`oW(wujfl6KhfEK!?!Iyvifev>7>l!nK=z$4E z1uCl0R}7(V4nol}Uf1!NLPaMbXGR`9v(Psbp)Vf7k>Moj3QcVkFbd=qSXIpmpZ~2t z-~aO@(=rMe1^z1qgw^z#E|#Rv)-#Lav(`a5L}BB&OrfNp(#NrM_$a=NA`N2>JHWce TOd)z;=8u4s!Bj?pr7G|P5zMt> literal 0 HcmV?d00001 diff --git a/Week1/.DS_Store b/Week1/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fa22fa83c2c922da3f4c5b0b02f43cc38cd923fe GIT binary patch literal 6148 zcmeHK!EVzq82-H#NV|6QfHb(}g2Z8)+G%44gjBljumcjJ2o8X@q$z7q8c$718KtNf z-T}cA@G86j55fb$=idgUZHB}JD&#-<{rz$L+0JLjj)_P#he4gFN< z3$|i%%0R(&cr?J}(K#gxrEP{)z$&n83aD?lLOZlY0X+NtZqrLjjw0FdBk7}*S|aYi zZ+&M&M6^!#@V)oJi$?~dZUUpd>)mt5PsF&BSP#R_VMS4hwnC~sR58Q@I!R*(; z`eYfXV5!Z_Q)g|dducmo6|f5Y3kB5r;KCI)3{Exj(t(7J0KfvW*$}HA1;udDo|5}IbsM+N4{&yH4IKQYB~vX_z { + let bin = (n.toString(2)).split(''); + console.log(bin) + let test = []; + let opr = 0 + + for(let j = 0; j < bin.length; j++) { + + if(bin[j] == 1 ) { + if(test.length == 0) { + test[opr] = []; + } + continue; + } + + let main = bin[j] + let rest = bin.slice(j+1, bin.length) + test[opr].push(main); + + if(bin[j+1] == 1) { + test[opr + 1] = []; + opr += 1; + } + + } + test.pop(); + + return test.length +} + + +console.log(binaryGap(529)); +console.log(binaryGap(32)); +console.log(binaryGap(9)); +console.log(binaryGap(20)); +console.log(binaryGap(15)); + + + + +//binaryGap(1041); \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/CountWays.js b/Week1/assignments/Armand-Collins/CountWays.js new file mode 100644 index 0000000..31577d9 --- /dev/null +++ b/Week1/assignments/Armand-Collins/CountWays.js @@ -0,0 +1,12 @@ + + +const numberOfWays = (n) => { + if(n <= 1) { + return n; + } + + return numberOfWays(n - 1) + numberOfWays(n - 2); +} + + +console.log(numberOfWays(4)) \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/Crossword.js b/Week1/assignments/Armand-Collins/Crossword.js new file mode 100644 index 0000000..e69de29 diff --git a/Week1/assignments/Armand-Collins/Dominator.js b/Week1/assignments/Armand-Collins/Dominator.js new file mode 100644 index 0000000..e41c678 --- /dev/null +++ b/Week1/assignments/Armand-Collins/Dominator.js @@ -0,0 +1,29 @@ + + +const dominator = (arr) => { + let values = {}; + let maxValue = arr.length/2 + let dominator; + + for(let val of arr) { + if(values[val] == null) { + values[val] = 1; + } else { + values[val]++; + } + } + + for(let count of arr) { + if(values[count] > maxValue) { + dominator = count; + } + } + + if(dominator) { + return dominator; + } + return 'It doesnt exist' +} + +console.log(dominator([3, 4, 2, 3, 3, 2, -1, 3, 3])); +console.log(dominator([3, 4, 2, 3, 2, 2, -1, 3, 3])); \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/PowerSum.js b/Week1/assignments/Armand-Collins/PowerSum.js new file mode 100644 index 0000000..9e9f82b --- /dev/null +++ b/Week1/assignments/Armand-Collins/PowerSum.js @@ -0,0 +1,24 @@ + +const powerSum = (x, n, curr_num = 1, sum = 0) => { + let result = 0; + + let p = Math.pow(curr_num, n); + + while(p + sum < x) { + result += powerSum(x, n, curr_num + 1, p + sum); + + curr_num++; + p = Math.pow(curr_num, n); + } + + if(p + sum == x) + result++ + + return result; +} + + + +console.log(powerSum(10, 2)); +console.log(powerSum(100, 2)); +console.log(powerSum(13, 2)); \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/Staircase.js b/Week1/assignments/Armand-Collins/Staircase.js new file mode 100644 index 0000000..f0d9f9d --- /dev/null +++ b/Week1/assignments/Armand-Collins/Staircase.js @@ -0,0 +1,13 @@ + + +const stairCase = (n) => { + + for(let i = 0; i <= n; i++) { + console.log("\x20".repeat(n - i) + "#".repeat(i)) + } + +} + +stairCase(3) +stairCase(4) +stairCase(6) \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/palindrome.js b/Week1/assignments/Armand-Collins/palindrome.js new file mode 100644 index 0000000..8376156 --- /dev/null +++ b/Week1/assignments/Armand-Collins/palindrome.js @@ -0,0 +1,30 @@ + + + +const palindrome = (str) => { + let first, midChar, end; + + let newStr = str.toLowerCase(); + let mid = Math.round(newStr.length/2) + + if(newStr.length % 2 != 0) { + midChar = str.slice(mid-1, mid) + } + + first = newStr.slice(0, mid-1); + end = newStr.slice(mid); + newFirst = first.split('').reverse().join(''); + + if( newFirst == end) { + return true; + } + + return false; +} + + +console.log(palindrome('level')); +console.log(palindrome('racecar')); +console.log(palindrome('Aba')); +console.log(palindrome('Nixon')); +console.log(palindrome('Kayak')); \ No newline at end of file From 94c88e151e01ffaf998e33fe45af36e43b66a385 Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 12:27:03 +0100 Subject: [PATCH 02/10] fix --- Week1/.DS_Store | Bin 0 -> 6148 bytes Week1/assignments/.DS_Store | Bin 0 -> 6148 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Week1/.DS_Store create mode 100644 Week1/assignments/.DS_Store diff --git a/Week1/.DS_Store b/Week1/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..596ffd8199ec153c2d4df3bbae60bfa3d8142fd3 GIT binary patch literal 6148 zcmeHK!EVzq82-H#NV*kzKpNa~LE^AY?bK=qgj7m**Z~Pq1P4G{(v&q*mP|=X8Ko!} z-T}cA@G86j55fb$_uB@gZ7Oj>2>eICzdyD=JNfL`F%gOG*l!ZmiO7O8R;ox!jLX@V zY)$8E0EKMBr39Bt7nCm5HW@|%qrl&$0DrqR+M^xv;l=NFmrf}?4C8?p#vW?%5^)E9 z`@1wmM4JW14!-#@olyx-Y%TEY0xvCPykB5!fRW+~=!7ElGDMm!KA-sZdn|8~p6j>z z;+=;Wls;p7b*}8>d}2dB%4S-E8FP_;DPEzhc*W5)3Ct z_3QWJD072om`HNq4^id$(;)KWNjDxxek$APs{+fiE&Hf`b2@Fdo2_l9)!LhFJJbFB z2I6*mHnXj*Tg|(N$7dIBrf+BOKH}YA0xPYwYZ`yTCj={0deu*&Fpf@8gV|Tf!$^6! zLg>ij7Gu@U%Em#C_=m!X*T8rUPiTO#NF~2n%KVI;ip))V35JKhB8=rg@>k83BCn38 z48R%6Im1t@q5+M{`V~BLihP?M(E;6~9z6i=V($3!vs%uYA_EQl7p7;D#cO~uqkvJs zC{R>@*9QmA*wL6PluHK^c?1AfkSz@{|0poW(b&vc5d z3KgA%K70t>v(P6LA$v#rj;v0iqtK*A0i(dY0_*Cw&intt>hu3R$=n$Qi~|3Z0;1CE z_quo`y|*sC9PhOb{20#0^>T%hf<$k}GT^QF23#7-91egTjk!YPz|4<;l))rMfj_Fi E4{QqAnE(I) literal 0 HcmV?d00001 diff --git a/Week1/assignments/.DS_Store b/Week1/assignments/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a0cce689b94750982f1624b302e461fe976c3cee GIT binary patch literal 6148 zcmeHK!EVz)5S>j^SO)<)R4Tpsg49Dn32Ny9RdUnxkOLCJRXMb%wd;sja=lgT5J4K` z?|?7pukZtW4!qgjR*eEkxgZ2P((Id^owt_XCc9oD5}i@fCTbFqgfrGWG(RyOXP>j0 z%`5|jp5qC{lu|}nFPp1&iN8?+UOSH>I->#FTkEIJ;!MRD<)6k2`1*Hkh=?B0E)D4% zjGPj%_DJ!nW9@S)df5#3Y7uTcE-vhIzs46?T9mEUH&I)vFW`ZSN2q1Mrqz3YI2(NQF8ny%@Z~5s8OC2dY;e> zNa;!Mq`5Ykv^Sr(HvG-4XVVRTvc0Y2t?AU0tB>0|z0>m#A19a7PoK3WB=8^5_R!)r zd_nMA#omX*JX85Q)bSi1y{3IA+@+Vmr_ec>)l{sa>h^k|>&z+O6mSYGpn%=4;gqptwKI?~z@^9Lhye2am_${Qr0jI#M0!yabjehO#fy2{`U1%W<_QOig1Be*u?eGY(u#mXQuF!v##WpIsC I;EyWs0~%z1F8}}l literal 0 HcmV?d00001 From f2b50cec0723adce4f281f96bf3026a3f7bbd112 Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 16:05:10 +0100 Subject: [PATCH 03/10] Solution to anagram exercise --- Week1/assignments/Armand-Collins/BinaryGap.js | 43 ------------------- Week1/assignments/Armand-Collins/CountWays.js | 12 ------ Week1/assignments/Armand-Collins/Crossword.js | 0 Week1/assignments/Armand-Collins/Dominator.js | 29 ------------- Week1/assignments/Armand-Collins/PowerSum.js | 24 ----------- Week1/assignments/Armand-Collins/Staircase.js | 13 ------ .../assignments/Armand-Collins/palindrome.js | 30 ------------- 7 files changed, 151 deletions(-) delete mode 100644 Week1/assignments/Armand-Collins/BinaryGap.js delete mode 100644 Week1/assignments/Armand-Collins/CountWays.js delete mode 100644 Week1/assignments/Armand-Collins/Crossword.js delete mode 100644 Week1/assignments/Armand-Collins/Dominator.js delete mode 100644 Week1/assignments/Armand-Collins/PowerSum.js delete mode 100644 Week1/assignments/Armand-Collins/Staircase.js delete mode 100644 Week1/assignments/Armand-Collins/palindrome.js diff --git a/Week1/assignments/Armand-Collins/BinaryGap.js b/Week1/assignments/Armand-Collins/BinaryGap.js deleted file mode 100644 index cd065c4..0000000 --- a/Week1/assignments/Armand-Collins/BinaryGap.js +++ /dev/null @@ -1,43 +0,0 @@ - - -const binaryGap = (n) => { - let bin = (n.toString(2)).split(''); - console.log(bin) - let test = []; - let opr = 0 - - for(let j = 0; j < bin.length; j++) { - - if(bin[j] == 1 ) { - if(test.length == 0) { - test[opr] = []; - } - continue; - } - - let main = bin[j] - let rest = bin.slice(j+1, bin.length) - test[opr].push(main); - - if(bin[j+1] == 1) { - test[opr + 1] = []; - opr += 1; - } - - } - test.pop(); - - return test.length -} - - -console.log(binaryGap(529)); -console.log(binaryGap(32)); -console.log(binaryGap(9)); -console.log(binaryGap(20)); -console.log(binaryGap(15)); - - - - -//binaryGap(1041); \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/CountWays.js b/Week1/assignments/Armand-Collins/CountWays.js deleted file mode 100644 index 31577d9..0000000 --- a/Week1/assignments/Armand-Collins/CountWays.js +++ /dev/null @@ -1,12 +0,0 @@ - - -const numberOfWays = (n) => { - if(n <= 1) { - return n; - } - - return numberOfWays(n - 1) + numberOfWays(n - 2); -} - - -console.log(numberOfWays(4)) \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/Crossword.js b/Week1/assignments/Armand-Collins/Crossword.js deleted file mode 100644 index e69de29..0000000 diff --git a/Week1/assignments/Armand-Collins/Dominator.js b/Week1/assignments/Armand-Collins/Dominator.js deleted file mode 100644 index e41c678..0000000 --- a/Week1/assignments/Armand-Collins/Dominator.js +++ /dev/null @@ -1,29 +0,0 @@ - - -const dominator = (arr) => { - let values = {}; - let maxValue = arr.length/2 - let dominator; - - for(let val of arr) { - if(values[val] == null) { - values[val] = 1; - } else { - values[val]++; - } - } - - for(let count of arr) { - if(values[count] > maxValue) { - dominator = count; - } - } - - if(dominator) { - return dominator; - } - return 'It doesnt exist' -} - -console.log(dominator([3, 4, 2, 3, 3, 2, -1, 3, 3])); -console.log(dominator([3, 4, 2, 3, 2, 2, -1, 3, 3])); \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/PowerSum.js b/Week1/assignments/Armand-Collins/PowerSum.js deleted file mode 100644 index 9e9f82b..0000000 --- a/Week1/assignments/Armand-Collins/PowerSum.js +++ /dev/null @@ -1,24 +0,0 @@ - -const powerSum = (x, n, curr_num = 1, sum = 0) => { - let result = 0; - - let p = Math.pow(curr_num, n); - - while(p + sum < x) { - result += powerSum(x, n, curr_num + 1, p + sum); - - curr_num++; - p = Math.pow(curr_num, n); - } - - if(p + sum == x) - result++ - - return result; -} - - - -console.log(powerSum(10, 2)); -console.log(powerSum(100, 2)); -console.log(powerSum(13, 2)); \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/Staircase.js b/Week1/assignments/Armand-Collins/Staircase.js deleted file mode 100644 index f0d9f9d..0000000 --- a/Week1/assignments/Armand-Collins/Staircase.js +++ /dev/null @@ -1,13 +0,0 @@ - - -const stairCase = (n) => { - - for(let i = 0; i <= n; i++) { - console.log("\x20".repeat(n - i) + "#".repeat(i)) - } - -} - -stairCase(3) -stairCase(4) -stairCase(6) \ No newline at end of file diff --git a/Week1/assignments/Armand-Collins/palindrome.js b/Week1/assignments/Armand-Collins/palindrome.js deleted file mode 100644 index 8376156..0000000 --- a/Week1/assignments/Armand-Collins/palindrome.js +++ /dev/null @@ -1,30 +0,0 @@ - - - -const palindrome = (str) => { - let first, midChar, end; - - let newStr = str.toLowerCase(); - let mid = Math.round(newStr.length/2) - - if(newStr.length % 2 != 0) { - midChar = str.slice(mid-1, mid) - } - - first = newStr.slice(0, mid-1); - end = newStr.slice(mid); - newFirst = first.split('').reverse().join(''); - - if( newFirst == end) { - return true; - } - - return false; -} - - -console.log(palindrome('level')); -console.log(palindrome('racecar')); -console.log(palindrome('Aba')); -console.log(palindrome('Nixon')); -console.log(palindrome('Kayak')); \ No newline at end of file From 2cb7706bc10f030f094efeb30f575f637bc82aa6 Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 16:37:25 +0100 Subject: [PATCH 04/10] initial --- Week1/assignments/Armand-Collins/Anagrams.js | 70 -------------------- 1 file changed, 70 deletions(-) delete mode 100644 Week1/assignments/Armand-Collins/Anagrams.js diff --git a/Week1/assignments/Armand-Collins/Anagrams.js b/Week1/assignments/Armand-Collins/Anagrams.js deleted file mode 100644 index b43eebd..0000000 --- a/Week1/assignments/Armand-Collins/Anagrams.js +++ /dev/null @@ -1,70 +0,0 @@ -let result = []; - -function getAllSubstrings(str) { - let i, j; - - for (i = 0; i < str.length; i++) { - for (j = i + 1; j < str.length + 1; j++) { - result.push(str.slice(i, j)); - } - } - console.log(result) - return result; -} - -function isAnagramSort(str1, str2) { - str1 = str1.split("").sort().join(""); - str2 = str2.split("").sort().join(""); - return str1 == str2; -} - -function isAnagramMap(str1, str2) { - //Anagarms must have the same length - if (str1.length != str2.length) { - return false; - } - var map = new Map(); - for (let i = 0; i < str1.length; i++) { - let val1 = map.get(str1[i]); - console.log(str1[i]); - if (!val1) { - map.set(str1[i], 1); - } else { - map.set(str1[i], val1 + 1); - console.log(val1, val1+1); - } - - let val2 = map.get(str2[i]); - if (!val2) { - map.set(str2[i], 1); - } else { - map.set(str2[i], val2 + 1); - } - } - - //every value in the map should be even. - let entries = map.entries(); - for(let [_,v] of map){ - if(v % 2 !== 0){ - return false; - } - } - return true; - -} - -function anagramCheck(arr) { - let final = []; - for (let i = 0; i < arr.length; i++) { - for (let j = i + 1; j < arr.length; j++) { - if (isAnagramMap(arr[i], arr[j])) { - final.push(...[arr[i], arr[j]]); - } - } - } - return final; -} - -var theString = 'mmom'; -getAllSubstrings(theString); -console.log(anagramCheck(result)) From b5a710fe740350907fc1610f17d2f9f3d8ad797a Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 16:41:43 +0100 Subject: [PATCH 05/10] anagrma solution --- Week1/assignments/.DS_Store | Bin 6148 -> 6148 bytes Week1/assignments/armand-collins/Anagrams.js | 70 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 Week1/assignments/armand-collins/Anagrams.js diff --git a/Week1/assignments/.DS_Store b/Week1/assignments/.DS_Store index a0cce689b94750982f1624b302e461fe976c3cee..fcc77f813b3323a138e1276caaa3e88677f8a6d7 100644 GIT binary patch delta 376 zcmZoMXfc=|#>B!ku~2NHo+2an#(>?7iytsEF>+7lVKPdi?v3{K9^EdZ;85LndLBP`3!cX5Hbk)ub@OD4zqkRu^W za`RJ2)>DvyB)qu~2NHo+2ab#(>?7jI5J+SWGvUv&1oOzR9M?xUs>Cc{4i)KL=3V aW Date: Thu, 21 May 2020 16:53:55 +0100 Subject: [PATCH 06/10] staircase exercise --- Week1/assignments/.DS_Store | Bin 6148 -> 6148 bytes Week1/assignments/armand-collins/.DS_Store | Bin 0 -> 6148 bytes Week1/assignments/armand-collins/Staircase.js | 13 +++++++++++++ 3 files changed, 13 insertions(+) create mode 100644 Week1/assignments/armand-collins/.DS_Store create mode 100644 Week1/assignments/armand-collins/Staircase.js diff --git a/Week1/assignments/.DS_Store b/Week1/assignments/.DS_Store index fcc77f813b3323a138e1276caaa3e88677f8a6d7..ffb36fe063d22245f639a0dba3bb4a7d7e4cab7c 100644 GIT binary patch delta 106 zcmZoMXfc@J&&abeU^g=(&tx7JO-8fLIV>|787(KXv0a`l$R<1a7%Tten`~;PX8*x} z0R(s$f*DE}5*acXiWriCbTLCJgC0W`L$PO0esWSyeiBfP00RT#_sM_Q?rvu1_{$Ff Dq{ScN delta 101 zcmZoMXfc@J&&a(oU^g=(_hcRxO=FG!V88$Z+zgHkc?^jR=?q0cGMAy4L60Geq1ZDg xKRGEUKMANpfPsOrb#fky&gM9lLPkdI$ro5JPd?A4Hd&Yb*2D(A&Fmb1`2hm;9+v-s>NTEoXa!V>CYMSK~gi`YZ5Reck5R{05?mE7OuS~`dP%Z~81=x~3 zyI#-j-4y3t0MfkPodRP3L%Jf~HS|r_)q8dj8AY*YtZ;)TtZ{uA3Y20gy(`an^QW4lWbOU!Fv>&O+FIF;yBi7SRU zo%s@VHL!JbI>dJ7b7E(S8;aQO%oi(%RL6{|Kq}Bx;LxXI?f)0_AMXEMQqEF=RNzl3 zAcN`EwBaX3Z|!}Y_S!8A2;f9p@nom2=$Lgiuyr&#^F}A;K|pm$O9g&I Ffi0HVDTDw3 literal 0 HcmV?d00001 diff --git a/Week1/assignments/armand-collins/Staircase.js b/Week1/assignments/armand-collins/Staircase.js new file mode 100644 index 0000000..f0d9f9d --- /dev/null +++ b/Week1/assignments/armand-collins/Staircase.js @@ -0,0 +1,13 @@ + + +const stairCase = (n) => { + + for(let i = 0; i <= n; i++) { + console.log("\x20".repeat(n - i) + "#".repeat(i)) + } + +} + +stairCase(3) +stairCase(4) +stairCase(6) \ No newline at end of file From e14d48407d580dbbb69ca2815a774c14fc6eef99 Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 17:17:27 +0100 Subject: [PATCH 07/10] staircase --- Week1/assignments/armand-collins/Anagrams.js | 70 -------------------- 1 file changed, 70 deletions(-) delete mode 100644 Week1/assignments/armand-collins/Anagrams.js diff --git a/Week1/assignments/armand-collins/Anagrams.js b/Week1/assignments/armand-collins/Anagrams.js deleted file mode 100644 index b43eebd..0000000 --- a/Week1/assignments/armand-collins/Anagrams.js +++ /dev/null @@ -1,70 +0,0 @@ -let result = []; - -function getAllSubstrings(str) { - let i, j; - - for (i = 0; i < str.length; i++) { - for (j = i + 1; j < str.length + 1; j++) { - result.push(str.slice(i, j)); - } - } - console.log(result) - return result; -} - -function isAnagramSort(str1, str2) { - str1 = str1.split("").sort().join(""); - str2 = str2.split("").sort().join(""); - return str1 == str2; -} - -function isAnagramMap(str1, str2) { - //Anagarms must have the same length - if (str1.length != str2.length) { - return false; - } - var map = new Map(); - for (let i = 0; i < str1.length; i++) { - let val1 = map.get(str1[i]); - console.log(str1[i]); - if (!val1) { - map.set(str1[i], 1); - } else { - map.set(str1[i], val1 + 1); - console.log(val1, val1+1); - } - - let val2 = map.get(str2[i]); - if (!val2) { - map.set(str2[i], 1); - } else { - map.set(str2[i], val2 + 1); - } - } - - //every value in the map should be even. - let entries = map.entries(); - for(let [_,v] of map){ - if(v % 2 !== 0){ - return false; - } - } - return true; - -} - -function anagramCheck(arr) { - let final = []; - for (let i = 0; i < arr.length; i++) { - for (let j = i + 1; j < arr.length; j++) { - if (isAnagramMap(arr[i], arr[j])) { - final.push(...[arr[i], arr[j]]); - } - } - } - return final; -} - -var theString = 'mmom'; -getAllSubstrings(theString); -console.log(anagramCheck(result)) From f5ef6547609b6459f36b084c7eb8cc1307be5ee7 Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 17:25:48 +0100 Subject: [PATCH 08/10] dominator --- Week1/assignments/armand-collins/Dominator.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Week1/assignments/armand-collins/Dominator.js diff --git a/Week1/assignments/armand-collins/Dominator.js b/Week1/assignments/armand-collins/Dominator.js new file mode 100644 index 0000000..e41c678 --- /dev/null +++ b/Week1/assignments/armand-collins/Dominator.js @@ -0,0 +1,29 @@ + + +const dominator = (arr) => { + let values = {}; + let maxValue = arr.length/2 + let dominator; + + for(let val of arr) { + if(values[val] == null) { + values[val] = 1; + } else { + values[val]++; + } + } + + for(let count of arr) { + if(values[count] > maxValue) { + dominator = count; + } + } + + if(dominator) { + return dominator; + } + return 'It doesnt exist' +} + +console.log(dominator([3, 4, 2, 3, 3, 2, -1, 3, 3])); +console.log(dominator([3, 4, 2, 3, 2, 2, -1, 3, 3])); \ No newline at end of file From 7d1ab8684f4411960a844162c68d4d8b1a4b64a5 Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 17:28:08 +0100 Subject: [PATCH 09/10] dominator --- Week1/assignments/armand-collins/Staircase.js | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 Week1/assignments/armand-collins/Staircase.js diff --git a/Week1/assignments/armand-collins/Staircase.js b/Week1/assignments/armand-collins/Staircase.js deleted file mode 100644 index f0d9f9d..0000000 --- a/Week1/assignments/armand-collins/Staircase.js +++ /dev/null @@ -1,13 +0,0 @@ - - -const stairCase = (n) => { - - for(let i = 0; i <= n; i++) { - console.log("\x20".repeat(n - i) + "#".repeat(i)) - } - -} - -stairCase(3) -stairCase(4) -stairCase(6) \ No newline at end of file From 28ebf4e1987edc12d06ed375e88bda1fa14bc6e2 Mon Sep 17 00:00:00 2001 From: Fogha Date: Thu, 21 May 2020 17:36:23 +0100 Subject: [PATCH 10/10] count ways to reach the nth stair --- Week1/assignments/armand-collins/CountWays.js | 12 ++++++++ Week1/assignments/armand-collins/Dominator.js | 29 ------------------- 2 files changed, 12 insertions(+), 29 deletions(-) create mode 100644 Week1/assignments/armand-collins/CountWays.js delete mode 100644 Week1/assignments/armand-collins/Dominator.js diff --git a/Week1/assignments/armand-collins/CountWays.js b/Week1/assignments/armand-collins/CountWays.js new file mode 100644 index 0000000..31577d9 --- /dev/null +++ b/Week1/assignments/armand-collins/CountWays.js @@ -0,0 +1,12 @@ + + +const numberOfWays = (n) => { + if(n <= 1) { + return n; + } + + return numberOfWays(n - 1) + numberOfWays(n - 2); +} + + +console.log(numberOfWays(4)) \ No newline at end of file diff --git a/Week1/assignments/armand-collins/Dominator.js b/Week1/assignments/armand-collins/Dominator.js deleted file mode 100644 index e41c678..0000000 --- a/Week1/assignments/armand-collins/Dominator.js +++ /dev/null @@ -1,29 +0,0 @@ - - -const dominator = (arr) => { - let values = {}; - let maxValue = arr.length/2 - let dominator; - - for(let val of arr) { - if(values[val] == null) { - values[val] = 1; - } else { - values[val]++; - } - } - - for(let count of arr) { - if(values[count] > maxValue) { - dominator = count; - } - } - - if(dominator) { - return dominator; - } - return 'It doesnt exist' -} - -console.log(dominator([3, 4, 2, 3, 3, 2, -1, 3, 3])); -console.log(dominator([3, 4, 2, 3, 2, 2, -1, 3, 3])); \ No newline at end of file