From 92d1c3dc4b96919edd343b6cce40ac145f59b293 Mon Sep 17 00:00:00 2001 From: Emmanuel <38895255+Nixhazel@users.noreply.github.com> Date: Wed, 30 Nov 2022 15:25:41 +0100 Subject: [PATCH 1/2] imported practise code --- src/binary-reversal/index.js | 35 ++++++++++++++++++++++++++++++++++- src/list-sorting/index.js | 31 ++++++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/src/binary-reversal/index.js b/src/binary-reversal/index.js index 965bccf4..e4408756 100644 --- a/src/binary-reversal/index.js +++ b/src/binary-reversal/index.js @@ -3,6 +3,39 @@ * * * @param {string} value */ -function binaryReversal(value) {} + function binaryReversal(value) { + let loop = Math.floor(value ** 0.5) + 1; + let arr = []; + for (let i = 0; i < loop; i++) { + if (value > 1) { + arr.push(value % 2); + value = Math.floor(value / 2); + } else if (value == 1) { + arr.push(1); + value = 0; + } + } + let strNum = arr.join(""); + let length = strNum.length; + + let n8 = Math.ceil(length / 8); + + if (length < 8 * n8) { + let diff = 8 * n8 - strNum.length; + + for (let i = 0; i < diff; i++) { + strNum += "0"; + } + } + let newLength = strNum.length; + + let sumArray = []; + for (let i = 0; i < newLength; i++) { + let pow = newLength - 1 - i; + let num = strNum[i]; + sumArray.push(num * 2 ** pow); + } + return sumArray.reduce((a, b) => a + b).toString(); + } module.exports = binaryReversal; diff --git a/src/list-sorting/index.js b/src/list-sorting/index.js index 6636c20d..ec7112c5 100644 --- a/src/list-sorting/index.js +++ b/src/list-sorting/index.js @@ -1,3 +1,32 @@ -function listSorting(needle, haystack) {} +function listSorting(needle, haystack) { + + if (haystack.length == 0) return -1; + let arr = []; + + if (typeof haystack[0] == "object") { + for (let i = 0; i < haystack.length; i++) { + if (haystack[i].length != 0 && haystack[i].lastIndexOf(needle) != -1) { + arr.push(haystack[i].lastIndexOf(needle)); + } else { + arr.push(null); + } + } + if (arr.every((el) => el == null)) return -1; + + let arr2 = []; + + for (let i = 0; i < arr.length; i++) { + let arr1 = []; + if (typeof arr[i] == "number") { + arr1.push(arr.lastIndexOf(arr[i]), arr[i]); + } else continue; + arr2.push(arr1); + } + if (arr2.length == 0) return -1; + return arr2[arr2.length - 1]; + } else if (typeof haystack[0] == "number") { + return haystack.lastIndexOf(needle); + } +} module.exports = listSorting; From ecd33b98b17515df34b0b2d6af874d8310b2bdf9 Mon Sep 17 00:00:00 2001 From: Emmanuel <38895255+Nixhazel@users.noreply.github.com> Date: Wed, 30 Nov 2022 15:26:33 +0100 Subject: [PATCH 2/2] Update index.js --- src/list-sorting/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/list-sorting/index.js b/src/list-sorting/index.js index ec7112c5..3af19970 100644 --- a/src/list-sorting/index.js +++ b/src/list-sorting/index.js @@ -1,5 +1,5 @@ function listSorting(needle, haystack) { - + if (haystack.length == 0) return -1; let arr = []; @@ -12,6 +12,7 @@ function listSorting(needle, haystack) { } } if (arr.every((el) => el == null)) return -1; + let arr2 = [];