| Day | Challenge | Solutions | Day | Challenge | Solutions | |
|---|---|---|---|---|---|---|
| 0 | Hello, World | Java Python | 15 | Linked Lists | Java Python | |
| 1 | Data Types | Java Python | 16 | Exceptions - String to Integer | Java Python | |
| 2 | Operators | Java Python | 17 | More Exceptions | Java Python | |
| 3 | Intro to Conditional Statements | Java Python | 18 | Queues and Stacks | Java Python | |
| 4 | Class vs. Instance | Java Python | 19 | Interfaces | Java Python | |
| 5 | Loops | Java Python | 20 | Sorting | Java Python | |
| 6 | Let's Review | Java Python | 21 | Generics | Java Python | |
| 7 | Arrays | Java Python | 22 | Binary Search Trees | Java Python | |
| 8 | Dictionaries and Maps | Java Python | 23 | BST Level-Order Traversal | Java Python | |
| 9 | Recursion | Java Python | 24 | More Linked Lists | Java Python | |
| 10 | Binary Numbers | Java Python | 25 | Running Time and Complexity | Java Python | |
| 11 | 2D Arrays | Java Python | 26 | Nested Logic | Java Python | |
| 12 | Inheritance | Java Python | 27 | Testing | Java Python | |
| 13 | Abstract Classes | Java Python | 28 | RegEx, Patterns, and Intro to Databases | Java Python | |
| 14 | Scope | Java Python | 29 | Bitwise AND | Java Python |
Since readers of this tutorial are probably somewhat new to programming, my solutions to this particular set of challenges prioritize code readability over small gains in efficiency or robustness.
That is, the type of long, dense, or convoluted "one-liner" solutions that some programmers enjoy showing off are not presented here, and input is assumed to mostly follow the constraints stated in each challenge.
The code stubs and solutions HackerRank provides for many of these challenges sometimes encourage bad coding habits. These include hardcoded values and some non-standard naming/indentation schemes. To help show beginners the light, my solutions adhere more strictly to general community standards of clean, maintainble code.
Specifically, my Java solutions mostly follow Google's Java Style Guide, and my Python solutions mostly follow PEP 8. (I say "mostly" because the locked code and tests written by HackerRank sometimes force the use of unconventional names, imports, etc.)