Skip to content

Instantly share code, notes, and snippets.

View elGuille-info's full-sized avatar

Guillermo Som elGuille-info

View GitHub Profile
@elGuille-info
elGuille-info / findOdInt.js
Created December 2, 2022 17:22
De un array numérico, encontrar el número que aparezca un número de veces impar (solo habrá un número que aparezca un número de veces impar)
/*
Given an array of integers, find the one that appears an odd number of times.
There will always be only one integer that appears an odd number of times.
Examples
[7] should return 7, because it occurs 1 time (which is odd).
[0] should return 0, because it occurs 1 time (which is odd).
[1,1,2] should return 2, because it occurs 1 time (which is odd).
[0,1,0,1,0] should return 0, because it occurs 3 times (which is odd).
@elGuille-info
elGuille-info / findEvenIndex.js
Created December 1, 2022 07:32
Buscar el índice en el que la suma de un array es igual por ambos lados
/*
You are going to be given an array of integers.
Your job is to take that array and find an index N where the sum of the integers to the left of N is equal to the sum of the integers to the right of N.
If there is no index that would make this happen, return -1.
For example:
Let's say you are given the array {1,2,3,4,3,2,1}:
Your function will return the index 3, because at the 3rd position of the array,
the sum of left side of the index ({1,2,3}) and the sum of the right side of the index ({3,2,1}) both equal 6.
@elGuille-info
elGuille-info / Arrays-Products.js
Created November 30, 2022 18:42
Manipulación de arrays en JavaScript
/*
Del ejemplo de [Active learning: Printing those products](
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Arrays?qs=arrays#active_learning_printing_those_products)
*/
//const list = document.querySelector('.output ul');
//const totalBox = document.querySelector('.output p');
let total = 0;
//list.innerHTML = '';
@elGuille-info
elGuille-info / getMiddle.js
Created November 30, 2022 13:19
Si una palabra tiene caracteres pares, devolver los 2 caracteres centrales, si tiene caracteres impares, devolver el carácter central
/*
You are going to be given a word.
Your job is to return the middle character of the word.
If the word's length is odd (impar), return the middle character.
If the word's length is even (par), return the middle 2 characters.
#Examples:
Kata.getMiddle("test") should return "es"
@elGuille-info
elGuille-info / accum.js
Created November 30, 2022 11:45
Acumular letras de forma que la primera letra se muestre una vez, la segunda dos veces y así sucesivamente separándolas con un guion (JavaScript)
/*
Acumular letras, de forma que la primera letra se muestre una vez, la segunda 2 veces, etc.
Debe empezar por una letra mayúscula y el resto minúsculas.
Ejemplos:
accum("abcd") -> "A-Bb-Ccc-Dddd"
accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
accum("cwAt") -> "C-Ww-Aaa-Tttt"
*/
function accum(s) {
@elGuille-info
elGuille-info / validatePIN.js
Created November 30, 2022 11:02
Valida un pin numérico de solo 4 o 6 cifras con expresiones regulares (JavaScript)
/*
Explicación:
^ indica que no haya nada delante
\d{4} un número de 4 cifras
\d{6} un número de 6 cifras
$ indica que ya no haya más caracteres (el final de la línea)
Cuando se hace en una sola expresión se ponen las dos comprobaciones entre paréntesis separados por |:
/^(\d{6}|\d{4})$/
*/
@elGuille-info
elGuille-info / toJadenCase.js
Created November 29, 2022 20:02
toJadenCase - Poner en mayúscula la primera letra de cada palabra de una cadena.
/*
var str = "How can mirrors be real if our eyes aren't real";
if (str.toJadenCase(), "How Can Mirrors Be Real If Our Eyes Aren't Real") {
// Es correcto.
}
else {
// No es correcto.
}
*/
@elGuille-info
elGuille-info / Evaluar.java
Created November 27, 2022 12:43
Evaluar expresiones aritmáticas (27-nov-22)
// Evaluar expresiones simples.
// Se permite *, /, %, +, - con este nivel de precedencia.
// Las expresiones entre paréntesis se evalúan primero.
//
// También se puede usar 'x' para multiplicar y ':' para dividir.
// Se puede indicar '!', para calcular la factorial.
//package com.example.evaluar;
import java.io.BufferedReader;
@elGuille-info
elGuille-info / Main.java
Created November 16, 2022 18:23
Main para probar el evaluador de expresiones
// EvaluarExpresiones. (16/nov/22 15.12)
// Evaluador de expresiones simples a partir del contenido de una cadena.
// Basado en el código de ejemplo de Prueba08 con sealed interface y records.
//package com.example.evaluar;
public class Main {
public static void main(String[] args) throws Exception {
System.out.println("Evaluar expresiones simples.");
@elGuille-info
elGuille-info / Expresiones.java
Created November 16, 2022 18:23
Interface y records para evaluar expresiones
// Expresiones
// sealed interface y permits en records.
// Los records son buenos candidatos para usarlos en permits porque son final.
//package com.example.evaluar;
sealed interface Expr
//permits ConstantExpr, PlusExpr, TimesExpr, NegExpr, MinusExpr, DivideExpr
{
int eval();