From ca65d0d898164f645a9cc0226dc2b9baf11c1f55 Mon Sep 17 00:00:00 2001 From: KarinAnt <56351086+KarinAnt@users.noreply.github.com> Date: Fri, 11 Oct 2019 18:03:19 +0400 Subject: [PATCH 1/2] Update array-and-strings.txt --- array-and-strings.txt | 178 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 176 insertions(+), 2 deletions(-) diff --git a/array-and-strings.txt b/array-and-strings.txt index 775dd02..c6f9b7e 100644 --- a/array-and-strings.txt +++ b/array-and-strings.txt @@ -7,6 +7,17 @@ Input: [1, 4, ‘i am a string’, ‘456’] Output: “Numbers: 2, Strings: 2” Solution: +function Coun(arr){ + var a=0, b=0; + for(let i = 0; i< arr.length; i++){ + if(typeof(arr[i])==='number'){ + a++; + }else if(typeof(arr[i])==='string'){ + b++; + } + } + return {'numbers':a, "strings":b}; +} @@ -23,6 +34,18 @@ Input: ”Which would be worse - to live as a monster, or to die as a good man? Output: "monster" Solution: +function Long(str){ + var arr = str.split(/[\s,-]+/); + var max = arr[0].length; + var b = arr[0]; + for(let i = 1; i n){ + ar1.push(arr[i]); + } + } + return ar1; +} @@ -50,13 +82,155 @@ Input: 9425 Output: “nine thousand four hundred twenty five” Solution: - +function Num(n){ + var a, b; + var ob1 = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; + if(String(n).length == 1){ + for(let i = 0; i < ob1.length; i++ ){ + if(n === i){ + return ob1[i]; + } + } + }else if(String(n).length == 2){ + a = n%10; + n = Math.floor(n/10); + if(n === 1){ + if(a === 0){ + return "ten"; + }else if( a === 1){ + return "eleven"; + }else if( a === 2){ + return "twelve"; + }else if(a === 8){ + return "eighteen"; + }else{ + for(let i = 0; i < ob1.length; i++){ + if(a === i){ + return ob1[i]+'teen'; + } + } + } + }else{ + for(let i = 1; i < ob1.length; i ++){ + if(a === i){ + a = ob1[i]; + } + } + switch(n){ + case 2: + n = 'twenty'; + break; + case 3: + n = 'thirty'; + break; + case 4: + n = "forty"; + break; + case 5: + n = "fifty"; + break; + case 6: + n = "sixty"; + break; + case 7: + n = "seventy"; + break; + case 8: + n = "eighty"; + break; + case 9: + n = "ninety"; + } + if(a === 0){ + return n; + } + return n + " " + a; + } + }else if(String(n).length == 3){ + b=Math.floor(n/100); + n = n%100; + for(let i = 0; i < ob1.length; i++){ + if(b === i){ + b = ob1[i] + " " + "hundred"; + } + } + a = n%10; + n = Math.floor(n/10); + if(n === 1){ + if(a === 0){ + return b + " " + "ten"; + }else if( a === 1){ + return b + " " + "eleven"; + }else if( a === 2){ + return b + " " + "twelve"; + }else if(a === 8){ + return b + " " + "eighteen"; + }else{ + for(let i = 3; i < ob1.length; i++){ + if(a === i){ + return b + " " + ob1[i]+'teen'; + } + } + } + }else{ + for(let i = 1; i < ob1.length; i ++){ + if(a === i){ + a = ob1[i]; + } + } + switch(n){ + case 0: + n =''; + break; + case 2: + n = 'twenty'; + break; + case 3: + n = 'thirty'; + break; + case 4: + n = "forty"; + break; + case 5: + n = "fifty"; + break; + case 6: + n = "sixty"; + break; + case 7: + n = "seventy"; + break; + case 8: + n = "eighty"; + break; + case 9: + n = "ninety"; + } + if(a === 0){ + return b + " " + n; + } + return b+ " " + n + " " + a; + } + } +} 5) A left rotation operation on an array shifts each of the array's elements unit to the left. For example, -if 2 left rotations are performed on array [1, 2, 3, 4, 5], then the array would become [3, 4, 5, 1, 2]. +if left rotations are performed on array [1, 2, 3, 4, 5], then the array would become [3, 4, 5, 1, 2]. Solution: +function Shi(arr, n){ + for(let j = 0; j Date: Mon, 14 Oct 2019 16:11:55 +0400 Subject: [PATCH 2/2] Update array-and-strings.txt end this exercises --- array-and-strings.txt | 190 ++++++++---------------------------------- 1 file changed, 37 insertions(+), 153 deletions(-) diff --git a/array-and-strings.txt b/array-and-strings.txt index c6f9b7e..e7ebb8e 100644 --- a/array-and-strings.txt +++ b/array-and-strings.txt @@ -7,7 +7,8 @@ Input: [1, 4, ‘i am a string’, ‘456’] Output: “Numbers: 2, Strings: 2” Solution: -function Coun(arr){ +let arr = [1, '10', 'hi', 2, 3]; +function findNumbersAndSringsCount (arr){ var a=0, b=0; for(let i = 0; i< arr.length; i++){ if(typeof(arr[i])==='number'){ @@ -34,16 +35,16 @@ Input: ”Which would be worse - to live as a monster, or to die as a good man? Output: "monster" Solution: -function Long(str){ +function longestWord(str){ var arr = str.split(/[\s,-]+/); var max = arr[0].length; var b = arr[0]; - for(let i = 1; i n){ - ar1.push(arr[i]); - } - } - return ar1; +function arrayLargenumber(arr, n){ + return arr.filter((v)=>(v>n)); } - 4) Write a function, which will receive a number between 0 to 999 and spell out that number in English. Input: 5 @@ -82,155 +76,45 @@ Input: 9425 Output: “nine thousand four hundred twenty five” Solution: -function Num(n){ - var a, b; - var ob1 = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; - if(String(n).length == 1){ - for(let i = 0; i < ob1.length; i++ ){ - if(n === i){ - return ob1[i]; - } +function numberToWords(n){ + var ob = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; + var ob2 = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen']; + var ob3 = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; + if(n<10){ + return ob[n]; + }else if(n<1000 && n>9){ + var b = Math.floor(n/100); + if(b === 0){ + b = ""; + }else{ + n = n%100; + b = ob[b] + " hundred "; } - }else if(String(n).length == 2){ - a = n%10; - n = Math.floor(n/10); - if(n === 1){ - if(a === 0){ - return "ten"; - }else if( a === 1){ - return "eleven"; - }else if( a === 2){ - return "twelve"; - }else if(a === 8){ - return "eighteen"; - }else{ - for(let i = 0; i < ob1.length; i++){ - if(a === i){ - return ob1[i]+'teen'; - } - } - } - }else{ - for(let i = 1; i < ob1.length; i ++){ - if(a === i){ - a = ob1[i]; - } - } - switch(n){ - case 2: - n = 'twenty'; - break; - case 3: - n = 'thirty'; - break; - case 4: - n = "forty"; - break; - case 5: - n = "fifty"; - break; - case 6: - n = "sixty"; - break; - case 7: - n = "seventy"; - break; - case 8: - n = "eighty"; - break; - case 9: - n = "ninety"; - } - if(a === 0){ - return n; - } - return n + " " + a; - } - }else if(String(n).length == 3){ - b=Math.floor(n/100); - n = n%100; - for(let i = 0; i < ob1.length; i++){ - if(b === i){ - b = ob1[i] + " " + "hundred"; - } + var a = n%10; + if(n<20 && n>9){ + return b + ob2[a]; } - a = n%10; n = Math.floor(n/10); - if(n === 1){ - if(a === 0){ - return b + " " + "ten"; - }else if( a === 1){ - return b + " " + "eleven"; - }else if( a === 2){ - return b + " " + "twelve"; - }else if(a === 8){ - return b + " " + "eighteen"; - }else{ - for(let i = 3; i < ob1.length; i++){ - if(a === i){ - return b + " " + ob1[i]+'teen'; - } - } - } - }else{ - for(let i = 1; i < ob1.length; i ++){ - if(a === i){ - a = ob1[i]; - } - } - switch(n){ - case 0: - n =''; - break; - case 2: - n = 'twenty'; - break; - case 3: - n = 'thirty'; - break; - case 4: - n = "forty"; - break; - case 5: - n = "fifty"; - break; - case 6: - n = "sixty"; - break; - case 7: - n = "seventy"; - break; - case 8: - n = "eighty"; - break; - case 9: - n = "ninety"; - } - if(a === 0){ - return b + " " + n; - } - return b+ " " + n + " " + a; + if(a===0 && n===0){ + return b; + }else if(n == 0){ + return b + ob[a]; + }else if(a === 0){ + return b + ob3[n-2]; } + n = ob3[n-2] + " " + ob[a]; + return b + n; } } - 5) A left rotation operation on an array shifts each of the array's elements unit to the left. For example, if left rotations are performed on array [1, 2, 3, 4, 5], then the array would become [3, 4, 5, 1, 2]. Solution: -function Shi(arr, n){ - for(let j = 0; j