Sprint Challenge: Hash Tables

This challenge allows you to practice the concepts and techniques learned over the past week and apply them to concrete examples.

Instructions

Read these instructions carefully. Understand exactly what is expected before starting this Sprint Challenge.

This is an individual assessment. All work must be your own. Your challenge score is a measure of your ability to work independently using the material covered through this sprint. You need to demonstrate proficiency in the concepts and objectives introduced and practiced in preceding days.

You are not allowed to collaborate during the Sprint Challenge. However, you are encouraged to follow the twenty-minute rule and seek support from your PM and Instructor in your cohort help channel on Slack. Your work reflects your proficiency in Python and your command of the concepts and techniques in related to hash tables.

You have three hours to complete this challenge. Plan your time accordingly.

Commits

Commit your code regularly and meaningfully. This helps both you (in case you ever need to return to old code for any number of reasons and your project manager.

Description

This sprint challenge is made up of five hashtables-related challenges.

Project Set Up

For the hash tables portion of the sprint challenge, you'll be working through algorithm problems that are amenable to being solved efficiently using a hash table.

Navigate into each exercise's directory, read the instructions for the exercise laid out in the README, implement your solution in the .py skeleton file, then make sure your code passes the tests by running the test script with make tests.

For these exercises, it's expected that you'll use Python's built-in dict as a hashtable.

That said, if you wish, you can attempt to solve using your own hashtable implementation, as well.

All solutions should utilize a dict or hashtable. Sets should not be used. (Though you can make a dict behave like a set, if you wish.)

Minimum Viable Product

  • Hash Tables: solve any 3 of the 5 problems. Solve more for more points.