Solutions to problems on HackerRank.
HackerRank's new problem format!
If you are interested in helping or have a solution in a different language feel free to make a pull request.
- Basic Programming
- Object-Oriented Programming
- RegEx
- Sorting
- Search
- Greedy Algorithms
- Graph Theory
- Strings
- Dynamic Programming
- Bit Manipulation
- Recursion
- Brute-Force
- Arrays
- Linked Lists
- Trees
- Balanced Trees
- Stacks
- Queues
- Heap
- Disjoint Set
- Multiple Choice
- Trie
- Advanced
- Fundamentals
- Number Theory
- Combinatorics
- Algebra
- Geometry
- Probability
- Linear Algebra Foundations
- Introduction
- Strings
- Classes
- STL
- Inheritance
- Other Concepts
- Introduction
- Strings
- BigNumber
- Data Structures
- Object Oriented Programming
- Exception Handling
- Advanced
- Introduction
- Classes
- Basic Data Types
- Strings
- Python Functionals
- Regex and Parsing
- XML
- Closures and Decorators
- Sets
- Math
- Itertools
- Collections
- Date and Time
- Errors and Exceptions
- Numpy
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| Class vs. Instance | Java | Easy | 30 | ||||
| Inheritance | Java | O(n) | O(1) | Easy | 30 | ||
| Abstract Classes | Java | Easy | 30 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| UK and US: Part 2 | Java | Easy | 10 | ||||
| Alien Username | Java | Easy | 10 | ||||
| Detect HTML Tags | Java | Easy | 10 | ||||
| Detect HTML links | Java | Easy | 10 | ||||
| Find A Sub-Word | Java | Easy | 10 | ||||
| IP Address Validation | Java | Easy | 10 | ||||
| Find HackerRank | Java | Easy | 15 | ||||
| The British and American Style of Spelling | Java | Easy | 15 | ||||
| Split the Phone Numbers | Java | Easy | 15 | ||||
| Valid PAN format | Java | Easy | 15 | ||||
| Saying Hi | Java | Easy | 15 | ||||
| HackerRank Tweets | Java | Easy | 15 | ||||
| HackerRank Language | Java | Easy | 15 | ||||
| Utopian Identification Number | Java | Easy | 15 | ||||
| Find a Word | Java | Medium | 15 | ||||
| Build a Stack Exchange Scraper | Java | Easy | 15 | ||||
| Detect the Domain Name | Java | Medium | 15 | ||||
| Detect the Email Addresses | Java | Medium | 15 | ||||
| Detect HTML Attributes | Java | Easy | 20 | ||||
| HackerRank in a String! | Java | O(n) | O(1) | Easy | 20 | ||
| Building a Smart IDE: Programming Language Detection | Java | Medium | 30 | ||||
| Count Strings | Java | Hard | 80 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| Two Characters | Java | O(n) | O(1) | Easy | 15 | ||
| Marc's Cakewalk | Java | O(n + k) | O(k) | Easy | 15 | ||
| Grid Challenge | Java | O(n*(n log (n))) | O(n^2) | Easy | 20 | ||
| Luck Balance | Java | O(n log(n)) | O(1) | Easy | 20 | ||
| Maximum Perimeter Triangle | Java | O(n log (n)) | O(n) | Easy | 20 | ||
| Equal Stacks | Java | O(n) | O(n) | Easy | 25 | ||
| Sherlock and The Beast | Java | O(n) | O(n) | Easy | 30 | ||
| Priyanka and Toys | Java | O(n log(n)) | O(n) | Easy | 30 | ||
| Largest Permutation | Java | Easy | 30 | ||||
| Beautiful Pairs | Java | Easy | 30 | ||||
| Yet Another Minimax Problem | Java | Medium | 20 | ||||
| Flipping the Matrix | Java | O(n^2) | O(n^2) | Medium | 30 | ||
| Roads and Libraries | Java | Medium | 30 | ||||
| Greedy Florist | Java | Medium | 35 | ||||
| Mark and Toys | Java | O(n log(n)) | O(n) | Easy | 35 | ||
| Max Min | Java | Medium | 35 | ||||
| Permuting Two Arrays | Java | Easy | 40 | ||||
| Jim and the Orders | Java | Easy | 40 | ||||
| Goodland Electricity | Java | Medium | 40 | ||||
| Fun Game | Java | Medium | 40 | ||||
| Reverse Shuffle Merge | Java | Advanced | 50 | ||||
| Cutting Boards | Java | Hard | 60 | ||||
| Algorithmic Crush | Java | Hard | 60 | ||||
| Prim's (MST): Special Subtree | Java | Medium | 60 | ||||
| Accessory Collection | Java | Hard | 60 | ||||
| Chief Hopper | Java | O(n) | O(n) | Hard | 65 | ||
| Sherlock and MiniMax | Java | Hard | 70 | ||||
| Team Formation | Java | Advanced | 70 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| Roads and Libraries | Java | Medium | 30 | ||||
| Synchronous Shopping | Java | Medium | 40 | ||||
| Crab Graphs | Java | Medium | 50 | ||||
| Even Tree | Java | Medium | 50 | ||||
| Snakes and Ladders: THe Quickest Way Up | Java | Medium | 50 | ||||
| Subset Component | Java | Hard | 50 | ||||
| Journey to the Moon | Java Python 3 | O(n + i) | O(n) | Medium | 50 | ||
| Kruskal (MST): Really Special Subtree | Java | Hard | 50 | ||||
| Minimum Penalty Path | Java | Medium | 50 | ||||
| Demanding Money | Java | Hard | 50 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| The Power Sum | Java | Easy | 20 | ||||
| Crossword Puzzle | Java | Medium | 30 | ||||
| Recursive Digit Sum | Java | Medium | 30 | ||||
| Simplified Chess Engine | Java | Medium | 40 | ||||
| Password Cracker | Java | Medium | 40 | ||||
| Artithmetic Expressions | Java | Hard | 40 | ||||
| K Factorization | Java | Hard | 50 | ||||
| Bowling Pins | Java | Advanced | 60 | ||||
| Simplified Chess Engine II | Java | Hard | 60 | ||||
| Repetitive K-Sums | Java | Advanced | 150 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| Lena Sort | Java | Medium | 30 | ||||
| Flipping the Matrix | Java | O(n^2) | O(n^2) | Medium | 30 | ||
| Gaming Array | Java | Medium | 35 | ||||
| New Year Chaos | Java | Medium | 40 | ||||
| Bonetrousle | Java | Medium | 50 | ||||
| Yet Another KMP Problem | Java | Hard | 60 | ||||
| Beautiful 3 Set | Java | Hard | 60 | ||||
| Inverse RMQ | Java | Hard | 60 | ||||
| Two Subarrays | Java | Expert | 70 | ||||
| Lovely Triplets | Java | Advanced | 80 | ||||
| Array Construction | Java | Advanced | 80 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| Pangrams | Java | Easy | 20 | ||||
| Climbing the Leaderboard | Java | O(n+m) | (n) | Easy | 20 | ||
| Strings: Making Anagrams | Java | O(|a|+|b|) | O(1) | Easy | 30 | ||
| Enryption | Java | Medium | 30 | ||||
| Making Anagrams | Java | Easy | 30 | ||||
| Modified Kaprekar Numbers | Java | Easy | 30 | ||||
| Queen's Attack II | Java | O(k) | O(1) | Medium | 30 | ||
| Organizing Containers of Balls | Java | O(n^2) | O(n^2) | Medium | 30 | ||
| Bigger is Greater | Java | Medium | 35 | ||||
| Ema's Supercomputer | Java | Medium | 40 | ||||
| Absolute Permuation | Java | Medium | 40 | ||||
| Larry's Array | Java | Medium | 40 | ||||
| The Bomberman Game | Java | O(n*m) | O(n*m) | Medium | 40 | ||
| Almost Sorted | Java | Medium | 50 | ||||
| Beautiful Quadruples | Java | Medium | 50 | ||||
| HackerRank City | Java | Medium | 50 | ||||
| Maximizing the Function | Java | Hard | 70 | ||||
| Matrix Layer Rotation | Java | Hard | 80 | ||||
| Gridland Provinces | Java | Hard | 80 | ||||
| Fighting Pits | Java | Hard | 80 | ||||
| Find the permutation | Java | Expert | 150 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| Lonely Integer - Fill the key-line | Java | Easy | 20 | ||||
| Make It Anagram | Java | Easy | 20 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|---|---|---|---|---|---|---|
| Compare two linked lists | C++ | O(n) | O(1) | Easy | 5 |
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| # | Title | Solution | Time | Space | Difficulty | Points | Note |
|---|
| | Walking the Approximate Longest Path| Java | | | Hard | 70 | || | | Sam's Puzzle (Approximate)| Java | | | Advanced | 85 | || | | Java Substring| Java | O(1) | O(1) | Easy | 5 | ||
