/scala-problems-interviews

The official repository for the Scala & Functional Programming Practice course

Primary LanguageScala

The official repository for the Rock the JVM Scala & Functional Programming practice course

This repository contains the code we wrote during Rock the JVM's Scala & Functional Programming Practice course. Unless explicitly mentioned, the code in this repository is exactly what was caught on camera.

How to install

  • install IntelliJ IDEA from JetBrains
  • open with IntelliJ as an SBT project

How to start

Clone this repository and checkout the start tag by running the following in the repo folder:

git checkout start

How to see the final code

Checkout the master branch:

git checkout master

How to run an intermediate state

The repository was built while recording the lectures. Prior to each lecture, I tagged each commit so you can easily go back to an earlier state of the repo!

The tags are as follows:

  • graphs-coloring
  • graphs-find-paths
  • graphs-intro
  • graphs-make-undirected
  • graphs-paths
  • lists-append
  • lists-big-3
  • lists-duplicate
  • lists-get-kth
  • lists-insert-sort
  • lists-length
  • lists-merge-sort
  • lists-prep
  • lists-quick-sort
  • lists-random-sample
  • lists-remove-kth
  • lists-reverse
  • lists-rle
  • lists-rotate
  • misc-eval
  • misc-n-queens
  • misc-sierpinski
  • numbers-approximate-pi
  • numbers-decompose
  • numbers-enhancing
  • numbers-primes
  • numbers-recurring-decimals
  • start
  • strings-anagram-checks
  • strings-count-chars
  • strings-generate-parentheses
  • strings-justify
  • strings-valid-parentheses
  • trees-collect-nodes-at-level
  • trees-intro
  • trees-leaves
  • trees-mirror
  • trees-same-shape
  • trees-size

When you watch a lecture, you can git checkout the appropriate tag and the repo will go back to the exact code I had when I started the lecture.

For questions or suggestions

If you have changes to suggest to this repo, either

  • submit a GitHub issue
  • tell me in the course Q/A forum
  • submit a pull request!