Training / JavaScript / Challenges
Most of these problems are taken from exercism.io !
The exercises are ordered roughly in order of difficulty, but it's a bit haphazard.
# Install jasmine:
$ sudo apt-get install nodejs-legacy
$ sudo npm install -g jasmine-node
# Go inside your project folder and:
$ jasmine-node *.spec.js --verbose --captureExceptions
http://www.commitstrip.com/fr/2016/02/22/when-the-functional-tests-are-all-red/
Write a program that greets the user by name, or by saying "Hello, World!" if no name is given.
1, 2, Fizz, 3, Buzz, Fizz
Write a program that will take a year and report if it is a leap year.
Write a program that can calculate the Hamming difference between two DNA strands.
Write a program that, given a DNA strand, returns its RNA complement (per RNA transcription).
Bob is a lackadaisical teenager. In conversation, his responses are very limited.
Write a program that will calculate the date that someone turned or will celebrate their 1 Gs anniversary.
Write a program that given a phrase can count the occurrences of each word in that phrase.
Determine if a sentence is a pangram.
Write a program which produces the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
Write a program that cleans up user-entered phone numbers so that they can be sent SMS messages.
Write a program that, given a word and a list of possible anagrams, selects the correct sublist.
Write a program that generates the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'
Write a small archiving program that stores students' names along with the grade that they are in.
Write a program that manages robot factory settings.
We are going to do the `Transform` step of an Extract-Transform-Load.
Write a program that, given an age in seconds, calculates how old someone is in terms of a given planet's solar years.
Write a program that calculates the number of grains of wheat on a chessboard given that the number on each square doubles.
Write a program that can tell you if a triangle is equilateral, isosceles, or scalene.
Implement a clock that handles times without dates.
Convert a long phrase to its acronym
Write a program that, given a word, computes the scrabble score for that word.
Write a function to convert from normal numbers to Roman Numerals: e.g.
A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
Write a program that will convert a binary number, represented as a string (e.g. '101010'), to its decimal equivalent using first principles
Compute the prime factors of a given natural number.
Write a program that converts a number to a string, the contents of which depends on the number's prime factors.
Write a program that, given a person's allergy score, can tell them whether or not they're allergic to a given item, and their full list of allergies.
Implement the `keep` and `discard` operation on collections. Given a collection and a predicate on the collection's elements, `keep` returns a new collection containing those elements where the predicate is true, while `discard` returns a new collection containing those elements where the predicate is false.
Create an implementation of the atbash cipher, an ancient encryption system created in the Middle East.
Implement the `accumulate` operation, which, given a collection and an operation to perform on each element of the collection, returns a new collection containing the result of applying that operation to each element of the input collection.
Implement the classic method for composing secret messages called a square code.
Write a program that will convert a trinary number, represented as a string (e.g. '102012'), to its decimal equivalent using first principles.
Write a program that uses the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
Implement a simple shift cipher like Caesar and a more secure substitution cipher
Write a program that will convert a octal number, represented as a string (e.g. '1735263'), to its decimal equivalent using first principles (i.e. no, you may not use built-in or external libraries to accomplish the conversion).
Write a program that can take a number and determine whether or not it is valid per the Luhn formula.
Implement a program that translates from English to Pig Latin
There exists exactly one Pythagorean triplet for which a + b + c = 1000. Find the product a * b * c.
Write a program that will take a string of digits and give you all the contiguous substrings of length `n` in that string.
Find the difference between the sum of the squares and the square of the sums of the first N natural numbers.
Write a program that will take a decimal number, and convert it to the appropriate sequence of events for a secret handshake.
Implement a doubly linked list
Write a program that takes a word problem and returns the answer as an integer.
Write a program that will convert a hexadecimal number, represented as a string (e.g. "10af8c"), to its decimal equivalent using first principles (i.e. no, you may not use built-in or external libraries to accomplish the conversion).
Write a program that, when given a string of digits, can calculate the largest product for a contiguous substring of digits of length n.
Write a program that, given a diagram, can tell you which plants each child in the kindergarten class is responsible for.
Write a program that implements a binary search algorithm.
Write a program that inserts numbers and searches in a binary tree.
Write a program that, given a string representing a matrix of numbers, can return the rows and columns of that matrix.
Write a robot simulator.
Write a program that can tell you what the nth prime is.
Write a program that can detect palindrome products in a given range.
Write a program that computes Pascal's triangle up to a given number of rows.
Write a program that will take a number from 0 to 999,999,999,999 and spell out that number in English.
Create a custom set type.
Write a program that, given a number, can find the sum of all the multiples of particular numbers up to but not including that number.
Write a program that positions two queens on a chess board and indicates whether or not they are positioned so that they can attack each other.
Write a program that detects saddle points in a matrix.
Write a program that, given a 3 x 4 grid of pipes, underscores, and spaces, can determine which number is represented, or whether it is garbled.
Calculate the date of meetups.
Make sure the brackets and braces all match.
Given two buckets of different size, write a program to demonstrate how to measure an exact number of liters.