From 3a87c3a66a4ac201380616debb245989bd25f1b8 Mon Sep 17 00:00:00 2001 From: Decagon Date: Tue, 13 Sep 2022 15:51:36 +0100 Subject: [PATCH 1/2] initial commit --- src/binary-reversal/index.js | 37 +++++++++++++++++++++++++++++++++--- src/list-sorting/index.js | 23 +++++++++++++++++++++- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/binary-reversal/index.js b/src/binary-reversal/index.js index 965bccf4..c8399d35 100644 --- a/src/binary-reversal/index.js +++ b/src/binary-reversal/index.js @@ -3,6 +3,37 @@ * * * @param {string} value */ -function binaryReversal(value) {} - -module.exports = binaryReversal; + function binaryReversal(value) { + // conversion of integar to binary + let toBinary = parseInt(value).toString(2); + // padding of the binary to 8 bits. + let padBinary = toBinary.padStart(8,0); + // reverse padded binary + let reverseBinary = padBinary.split('').reverse().join('') + + let result = parseInt(reverseBinary, 2); + + return `${result}` + } + + + // function binaryReversal(str){ + // let inputBinaryStr = parseInt(str, 10).toString(2); + // let inputBinaryLength = inputBinaryStr.length; + + // // loading zeroes to make the number an integral number of bytes + + // let bytelen = 8 - (inputBinaryLength % 8); + // let x = 0; + + // inputBinaryLength % 8 !== 0 ? inputBinaryStr = new Array(bytelen+1) + inputBinaryStr : inputBinaryStr + // inputBinaryStr = inputBinaryStr + // .split("") + // .reverse() + // .join("") + + // inputBinaryStr = parseInt(inputBinaryStr, 2) + // return inputBinaryStr + //} + module.exports = binaryReversal; + \ No newline at end of file diff --git a/src/list-sorting/index.js b/src/list-sorting/index.js index 6636c20d..458910f9 100644 --- a/src/list-sorting/index.js +++ b/src/list-sorting/index.js @@ -1,3 +1,24 @@ -function listSorting(needle, haystack) {} +function listSorting(needle, haystack) { + if (needle.includes(haystack) === true) { + return needle.indexOf(haystack) + } else { + return -1 + } + } +// const arr = [[0], [1]]; + +// function listSorting(needle, haystack) { +// if (!Array.isArray(haystack[0])) { +// return haystack.lastIndexOf(needle); +// } + +// for (let r = haystack.length - 1; r >= 0; r--) { +// let c = haystack[r].lastIndexOf(needle) +// if (c !== -1) { +// return [r, c] +// } +// } +// return -1; +// } module.exports = listSorting; From 0054e0183691c2e83f32b29f92561e315e5e2210 Mon Sep 17 00:00:00 2001 From: Decagon Date: Tue, 13 Sep 2022 20:53:23 +0100 Subject: [PATCH 2/2] final commit --- src/binary-reversal/index.js | 35 +++++++----------------------- src/list-sorting/index.js | 41 ++++++++++++++++-------------------- 2 files changed, 26 insertions(+), 50 deletions(-) diff --git a/src/binary-reversal/index.js b/src/binary-reversal/index.js index c8399d35..809f4e31 100644 --- a/src/binary-reversal/index.js +++ b/src/binary-reversal/index.js @@ -8,32 +8,13 @@ let toBinary = parseInt(value).toString(2); // padding of the binary to 8 bits. let padBinary = toBinary.padStart(8,0); - // reverse padded binary - let reverseBinary = padBinary.split('').reverse().join('') - - let result = parseInt(reverseBinary, 2); - - return `${result}` + // split the padded binary,reverse and join. + let reversedBinary = padBinary.split('').reverse().join('') + // convert the reversed binary into digits and store in a variable finalNum + let finalNum = parseInt(reversedBinary, 2); + // return the final result + return `${finalNum}` + } - - - // function binaryReversal(str){ - // let inputBinaryStr = parseInt(str, 10).toString(2); - // let inputBinaryLength = inputBinaryStr.length; - - // // loading zeroes to make the number an integral number of bytes - - // let bytelen = 8 - (inputBinaryLength % 8); - // let x = 0; - - // inputBinaryLength % 8 !== 0 ? inputBinaryStr = new Array(bytelen+1) + inputBinaryStr : inputBinaryStr - // inputBinaryStr = inputBinaryStr - // .split("") - // .reverse() - // .join("") - - // inputBinaryStr = parseInt(inputBinaryStr, 2) - // return inputBinaryStr - //} - module.exports = binaryReversal; + module.exports = binaryReversal; \ No newline at end of file diff --git a/src/list-sorting/index.js b/src/list-sorting/index.js index 458910f9..2b49ee07 100644 --- a/src/list-sorting/index.js +++ b/src/list-sorting/index.js @@ -1,24 +1,19 @@ function listSorting(needle, haystack) { - if (needle.includes(haystack) === true) { - return needle.indexOf(haystack) - } else { - return -1 - } - } -// const arr = [[0], [1]]; - -// function listSorting(needle, haystack) { -// if (!Array.isArray(haystack[0])) { -// return haystack.lastIndexOf(needle); -// } - -// for (let r = haystack.length - 1; r >= 0; r--) { -// let c = haystack[r].lastIndexOf(needle) -// if (c !== -1) { -// return [r, c] -// } -// } -// return -1; -// } - -module.exports = listSorting; + // if haystack is not a single array, return last index of haystack(needle). + if(!Array.isArray(haystack[0])){ + return haystack.lastIndexOf(needle) + } + // loop through the haystack row using for loop in descending order + // loop through the haystack column to identify the last index(needle) + // if the last index of the colum exists, return row, column, else return -1. + for (let row = haystack.length-1; row >= 0; row--){ + let col = haystack[row].lastIndexOf(needle) + if (col !==-1){ + return [row, col] + } + } + return -1 + } + + module.exports = listSorting; +