Skip to content

hasanmubarok9/CtCI-6th-Edition

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaScript ES2015 solutions to Cracking the Coding Interview

These are solutions and associated unit tests for the questions in Cracking the Coding Interview 6th edition using JavaScript ES2015 features. These solutions specifically take advantage of ES2015 enhancements to the JavaScript language and require the latest Node.js (>= v5.0.0) to work properly. As not all ES2015 features are available in V8 yet babel is being used to fill in the gaps (at this point only the ES2015 module syntax is being transpiled by babel).

Setup the project

Once downloaded ensure that Node.js is installed and run the following commands in this directory:

npm install

Running unit tests

The solutions are demonstrated by a set of unit tests which use the Mocha unit test framework and Chai as an assertions library. These tests can be executed at any time with:

npm test

As part of the unit tests ESLint will also be run against all files to ensure that the JavaScript is valid and follows best practice.

Linting source code

While executing ESLint by itself is not necessary (as it runs as part of the unit test execution) you can choose to run it with:

npm run lint

Dependencies

This implementation of the solutions requires the following dependencies:

  • Node.js >= v5.0.0
  • npm >= v3
  • Mocha (installed via npm)
  • Chai (installed via npm)
  • Babel (installed via npm)

CtCI-6th-Edition

Solutions for Cracking the Coding Interview 6th Edition by Gayle Laakmann McDowell.

Crowdsourcing solutions for every widely used programming language. Contributions welcome.

Cloning

Solutions in Java are contained directly in this repo and are the same solutions found in the book. Solutions in other programming languages are contributed by the community and each have their own dedicated repos which are referenced from this repo as git submodules. What this means for cloning:

  • If you want to make a local clone of solutions in all languages, you should use the --recursive option:

      git clone --recursive https://github.com/careercup/CtCI-6th-Edition.git
    
  • If you're only interested in the Java solutions:

      git clone https://github.com/careercup/CtCI-6th-Edition.git
    
  • If you originally cloned without --recursive, and then later decide you want the git submodules too, run:

      git submodule update --init --recursive
    

Contributing

Work Flow

  1. Fork the appropriate repo for your language to your GitHub user. (see Where to submit pull requests)
  2. Write quality code and lint if applicable.
  3. Add tests if applicable.
  4. Open a pull request and provide a descriptive comment for what you did.

Where to submit pull requests

Pull requests pertaining to Java solutions should be submitted to the main CtCI-6th-Edition repo. Please submit pull requests for all other languages to the appropriate language-specific repo.

Adding a new Language

Solutions in other languages are welcome too and should follow this workflow:

  1. Create the new repo under your own GitHub user account and start contributing solutions. The repo name should follow this naming convention: CtCI-6th-Edition-<language>.
  2. Open an issue on the CtCI-6th-Edition repo to request that your solution repo be promoted to join the careercup GitHub organization and referenced from the main repo as a git submodule.
  3. If your request is approved, navigate to your repo's settings page and select the "Transfer Ownership" option, and specify "careercup" as the new owner.

About

Cracking the Coding Interview 6th Ed. Solutions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 86.6%
  • JavaScript 13.3%
  • C++ 0.1%