JavaScript Algorithms and Data Structures Projects - Josej2r/JavaScript_Algorithms_and_Data_Structures_Certification GitHub Wiki

JavaScript Algorithms and Data Structures Projects

Introduction to the JavaScript Algorithms and Data Structures Projects

¡Es hora de poner tus nuevas habilidades de JavaScript a trabajar!. Estos desafíos de secuencias de comandos del algoritmo pero más difíciles. Esto te permitirá probar cuánto has aprendido.

En esta sección, creará los siguientes pequeños programas de JavaScript:

  • Palindrome Checker
  • Roman Numeral Converter
  • Caesars Cipher
  • Telephone Number Validator
  • Cash Register

Diviértete y recuerda usar el método Leer-Buscar-Preguntar si te quedas atascado. ¡Buena suerte!.

Upcoming Lessons

Palindrome Checker

Devuelve true, si la cadena dada es un palíndromo. De lo contrario, devuelve false. Un palíndromo es una palabra u oración que se escribe de la misma manera tanta hacia adelante como hacia atrás, ignorando la puntuación, el mayúsculas o minúsculas y espacios.

Nota: Deberá eliminar todos los carácteres no alfanuméricos (signos de puntuación, espacios y símbolos) y convertir todo en el mismo case sensitive ( minúscula o mayúscula) para verificar si hay palíndromos.

Pasaremos cadenas con diferentes formatos "racecar", "RaceCar" y "race CAR", entre otros. También pasaremos cadenas con símbolos especiales, como "2A3 * 3a2", "2A3 3a2" y "2_A3 * 3 # A2".

El código con la solución se encuentra aquí:Download

Roman Numeral Converter

Convierte el número dado en un número romano. Todas las respuestas de números romanos deben proporcionarse en mayúsculas.

El código con la solución se encuentra aquí:Download.

Caesars Cipher

Uno de los cifrados más simples y conocidos es el cifrado César, también conocido como cifrado por desplazamiento. Es un cifrado de turno, los significados de las letras cambian en una cantidad determinada.

Un uso común es el cifrado ROT13, donde los valores de las letras se desplazan 13 lugares. Así "A" <=> !"N", "B" <=> "O" y así sucesivamente.

Escriba una función que tome una cadena codificada ROT13 como entrada y devuelva una cadena decodificada.

Todas las letras serán mayúsculas. No transforme ningún carácter no alfabético (es decir, espacio, puntuación), pero sí páselos.

El código con la solución se encuentra aquí:Download

Telephone Number Validator

Devuelve true si la cadena pasada parece un número de teléfono válido en EE.UU.

El usuario puede completar el campo del formulario de cualquier forma que elija, siempre que tenga el formato de un número válido de EE.UU. Los siguientes son ejemplos de formatos válidos para números de EE.UU.(Consulte las pruebas a continuación para conocer otras variantes):

555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555

Para este desafío, se le presentará una cadena como 800-692-7753 o 8oo-six427676;laskdjf. Su trabajo es validar o rechazar el número de teléfono de EE.UU. En función de cualquier combinación de los formatos proporcionados anteriormente. El código de área es obligatorio. Si se proporciona el código del país es 1. Devuelva true si la cadena es un número de teléfono válido de EE.UU de lo contrario, devuelva false.

El código con la solución se encuentra aquí:Download

Cash Register

Diseñe una función de caja registradora checkCashRegister() que acepte el precio de compra como primer argumento price, el pago como segundo argumento cash y cash-in-drawer cid, como tercer argumento.

cid es una matriz 2D que enumera la moneda disponible.

La función checkCashRegister() siempre debe devolver un objeto con clave de status y una clave de change.

Devuelve {status: "INSUFFICIENT_FUNDS", change: []} si el efectivo en la caja registradora es menor que el cambio adeudado, o sino puede devolver el cambio exacto.

Devuelve {status: "CLOSED", change: [...]} con la caja registradora de efectivo como valor para el cambio de clave si es igual al cambio adeudado.

De lo contrario, devuelva {status: "OPEN", change: [...]}, con el cambio pendiente en monedas y billetes, ordenados de mayor a menor, como el valor de la clave de change.

Currency Unit Amount
Penny $0.01 (PENNY)
Nickel $0.05 (NICKEL)
Dime $0.1 (DIME)
Quarter $0.25 (QUARTER)
Dollar $1 (DOLLAR)
Five Dollars $5 (FIVE)
Ten Dollars $10 (TEN)
Twenty Dollars $20 (TWENTY)
One-hundred Dollars $100 (ONE HUNDRED)

Vea a continuación un ejemplo de una matriz de cash-in-drawer:

[
  ["PENNY", 1.01],
  ["NICKEL", 2.05],
  ["DIME", 3.1],
  ["QUARTER", 4.25],
  ["ONE", 90],
  ["FIVE", 55],
  ["TEN", 20],
  ["TWENTY", 60],
  ["ONE HUNDRED", 100]
]

El código con la solución se encuentra aquí:Download