├── README.md ├── cuantas-veces-se repite-una-palabra.js ├── cuantas-veces-se-repiten-las-palabras.js ├── eliminar-datos-repetidos.js ├── encontrar-suma-de-dos.js ├── encontrar-suma-mas-grande-de-dos.js ├── fibonacci.js ├── invertir-string.js ├── numero-perdido.js ├── numero-primo.js ├── numero-random.js └── palindromo.js /README.md: -------------------------------------------------------------------------------- 1 | # BASIC ALGORITHMS TO STUDY ! 2 | 3 | Made with ❤️️ and 🖥 -------------------------------------------------------------------------------- /cuantas-veces-se repite-una-palabra.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Cuámtas veces se repite una palabra en una frase 3 | * 4 | * Entrada: Frase, palabra que se repite 5 | * Salida: número de veces que se repite la palabra 6 | */ 7 | 8 | function howManyTimes (phrase, word) { 9 | const phraseArr = phrase.split(' '); 10 | let temp = 0; 11 | phraseArr.map(w => { 12 | if (w === word) return temp++ 13 | }) 14 | return temp; 15 | } -------------------------------------------------------------------------------- /cuantas-veces-se-repiten-las-palabras.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Cuántas veces se repiten las palabras de una frase 3 | * 4 | * Entrada: Frase 5 | * Salida: número de veces que se repiten las palabras 6 | */ 7 | 8 | function howManyTimes(phrase) { 9 | var arrPhrase = phrase.split(' ') 10 | dictionary = {}; 11 | 12 | arrPhrase.forEach(word => { 13 | if(dictionary[word]) { 14 | dictionary[word] = dictionary[word] + 1; 15 | } else { 16 | dictionary[word] = 1; 17 | } 18 | }); 19 | 20 | return dictionary; 21 | } -------------------------------------------------------------------------------- /eliminar-datos-repetidos.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Eliminar datos repetidos de una matriz 3 | * Si tengo: [1, 1, 2, 3, 3, 3, 4, 5]; 4 | * Debe quedar: [1, 2, 3, 4, 5]; 5 | */ 6 | 7 | function deleteRepeat(array) { 8 | var exist = {}, 9 | arrTemp = [], 10 | number; 11 | 12 | for(var i = 0; i < array.length; i++) { 13 | number = array[i]; 14 | if (!exist[number]) { 15 | arrTemp.push(number); 16 | exist[number] = true; 17 | } 18 | } 19 | 20 | return arrTemp; 21 | } -------------------------------------------------------------------------------- /encontrar-suma-de-dos.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Mirar si hay dos números que sumen un número determinado 3 | * 4 | * Entrada: Array y Número 5 | * Salida: true o false 6 | */ 7 | 8 | function sumaDeDos(arr, suma) { 9 | for(var i = 0; i < arr.length; i++) { 10 | for(var j = i + 1; j < arr.length; j++) { 11 | if(arr[i] + arr[j] == suma) return true 12 | } 13 | } 14 | 15 | return false; 16 | } -------------------------------------------------------------------------------- /encontrar-suma-mas-grande-de-dos.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dado un array, encontrar la suma más grande entre dos números 3 | * 4 | * Entrada: array 5 | * Salida: la suma más grande 6 | */ 7 | 8 | function sumaMasGrande(arr) { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /fibonacci.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Fibonacci: 3 | * 1 -> 1 4 | * 2 -> 1 5 | * 3 -> 2 6 | * 4 -> 3 7 | * 5 -> 5 8 | */ 9 | 10 | function fibonacci (number) { 11 | var fibo = [0, 1]; 12 | 13 | if (number <= 2) return 1; 14 | for (var i = 2; i <= number; i++) { 15 | fibo[i] = fibo[i-1] + fibo[i-2]; 16 | } 17 | 18 | return fibo[number]; 19 | } -------------------------------------------------------------------------------- /invertir-string.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Si tengo "hola mundo feliz" 3 | * Debo devolver "zilef odnum aloh" 4 | */ 5 | 6 | function stringReverse (phrase) { 7 | var phraseTemp = ''; 8 | 9 | for(var i = phrase.length - 1; i >= 0; i--) { 10 | phraseTemp = phraseTemp + phrase[i]; 11 | } 12 | 13 | return phraseTemp; 14 | } -------------------------------------------------------------------------------- /numero-perdido.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Entrada: [1, 4, 5, 3] -> Lista desordenada 3 | * Salida: 2 4 | * 5 | * Suma lineal de n números: n*(n+1)/2 6 | */ 7 | 8 | function numeroPerdido (arr) { 9 | var n = arr.length + 1, 10 | sumaLineal = n * (n + 1) / 2, 11 | sumaTotal = 0; 12 | 13 | for (var i = 0; i < arr.length; i++) { 14 | sumaTotal += arr[i]; 15 | } 16 | 17 | return sumaLineal - sumaTotal; 18 | } 19 | -------------------------------------------------------------------------------- /numero-primo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Un número primo es divisible sólo por 1 y por el mismo 3 | * 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37... 4 | */ 5 | 6 | function isPrime (number) { 7 | for (var i = 2; i < number; i++) { 8 | if (number % i === 0) { 9 | return false; 10 | } 11 | } 12 | 13 | return number !== 1; 14 | } -------------------------------------------------------------------------------- /numero-random.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Número random entre 1 y 5 3 | */ 4 | 5 | function random() { 6 | return 1 + Math.random() * 4; 7 | } -------------------------------------------------------------------------------- /palindromo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Entrada: "madam", "somos", "oso", "radar" 3 | * Salida: True 4 | */ 5 | 6 | function palindrome1 (phrase) { 7 | return phrase == phrase.split('').reverse().join(''); 8 | } 9 | 10 | function palindrome2 (word) { 11 | var arrWord = word.split(''), 12 | arrTemp = []; 13 | 14 | for (var i = arrWord.length - 1; i >= 0; i--) { 15 | arrTemp.push(arrWord[i]); 16 | } 17 | 18 | if (arrWord.join('') == arrTemp.join('')) return true; 19 | return false; 20 | } --------------------------------------------------------------------------------