From 56dc9530e311b86b69326e2da51f121afee4e7c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Juli=C3=A1n=20Acero=20Lomel=C3=AD?= Date: Sun, 14 Feb 2021 01:25:27 -0600 Subject: [PATCH] My code interviews :D --- fibonacci/imjulianeral.js | 26 ++++++++++++++++++++++++++ floyd-triangle/imjulianeral.js | 16 ++++++++++++++++ hanoi-towers/imjulianeral.js | 11 +++++++++++ palindrome/imjulianeral.js | 16 ++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 fibonacci/imjulianeral.js create mode 100644 floyd-triangle/imjulianeral.js create mode 100644 hanoi-towers/imjulianeral.js create mode 100644 palindrome/imjulianeral.js diff --git a/fibonacci/imjulianeral.js b/fibonacci/imjulianeral.js new file mode 100644 index 0000000..ccac0a6 --- /dev/null +++ b/fibonacci/imjulianeral.js @@ -0,0 +1,26 @@ +// Code written by Jorge Julián Acero Lomelí (@imjulianeral) + +// Without Recursion: +let sequence = [] + +for (let i = 0; i < 10; i++) { + if (i <= 1) sequence = [...sequence, i] + else { + const currentNumber = sequence[i - 1] + const previousNumber = sequence[i - 2] + + sequence = [...sequence, currentNumber + previousNumber] + } +} +console.log(sequence) + +// With Recursion: +const fibonacci = N => { + if (N === 0 || N === 1) return N + + return fibonacci(N - 2) + fibonacci(N - 1) +} + +for (let i = 0; i < 10; i++) { + console.log(fibonacci(i)) +} diff --git a/floyd-triangle/imjulianeral.js b/floyd-triangle/imjulianeral.js new file mode 100644 index 0000000..0661c07 --- /dev/null +++ b/floyd-triangle/imjulianeral.js @@ -0,0 +1,16 @@ +// Code written by Jorge Julián Acero Lomelí (@imjulianeral) + +let tempStr = '', + prevNumber = 1, + i, + depth = 10 +for (i = 0; i < depth; i++) { + tempStr = '' + j = 0 + while (j <= i) { + tempStr = tempStr + ' ' + prevNumber + j++ + prevNumber++ + } + console.log(tempStr) +} diff --git a/hanoi-towers/imjulianeral.js b/hanoi-towers/imjulianeral.js new file mode 100644 index 0000000..68f32cb --- /dev/null +++ b/hanoi-towers/imjulianeral.js @@ -0,0 +1,11 @@ +// Code written by Jorge Julián Acero Lomelí (@imjulianeral) + +function TowerOfHanoi(n, fromRod, toRod, auxRod) { + if (n === 1) return console.log('Move disk', 1, 'from rod', fromRod, 'to rod', toRod) + + TowerOfHanoi(n - 1, fromRod, auxRod, toRod) + console.log('Move disk', n, 'from rod', fromRod, 'to rod', toRod) + TowerOfHanoi(n - 1, auxRod, toRod, fromRod) +} + +TowerOfHanoi(6, 'A', 'C', 'B') diff --git a/palindrome/imjulianeral.js b/palindrome/imjulianeral.js new file mode 100644 index 0000000..eb4637e --- /dev/null +++ b/palindrome/imjulianeral.js @@ -0,0 +1,16 @@ +// Code written by Jorge Julián Acero Lomelí (@imjulianeral) + +const word = 'anita lava la tina' +const cleanWord = word.replace(/\s/g, '') +let counter = 0 +let reversed = [] + +for (let i = cleanWord.length - 1; i >= 0; i--) { + reversed[counter++] = cleanWord[i] +} + +if (cleanWord === reversed.join('')) { + console.log(`${word} is a palindrome`) +} else { + console.log(`${word} is not a palindrome`) +}