This repository contains a set of programming puzzles that meant to be solved using Kotlin language (hints, solutions and tests are here as well). Purpose of this repository is to help you to practice deliberately and develop strong problem-solving skills. This will help you become better programmer and improve you chance of getting new job, by passing whiteboard coding interview.
Each puzzle is located in separate package and it contains of 3 files (screen):
Puzzle.md- description of the task.Puzzle.kt- empty method/class where puzzle should be solved. This file also contains a set of JUnit tests.PuzzleSolution.kt- file that contains solutions.
Keep in mind that each puzzle will usually have more than one solution. Even simple puzzle like String reversal can be solved in 10 different ways. Usually, we compare various solutions using (Big O notation) to determine space/time complexity and we look at code readability.
Puzzles below are segregated by different difficulty. If you want to solve puzzles by problem type, please check this section.
Some puzzle may contain a reference to other puzzles that should be solved before to have better understanding of the problem. To succeed you need to practice often, repeat same puzzles multiple times and be persistent over time. Take your time before you take a look at the presented solution. Good luck!
New in Town
- Capitalize sentence
- Range contains range?
- Add up to
- Linear search
- Count down
- Count up and down
- Generate all pairs
- List count unique values
- Print number
- Print number with steps
- Power
- Factorial
- Product
- Capitalize first
Apprentice
- Is palindrome
- Is tolerant palindrome
- Is anagram
- Max occurring char
- String reversal
- Find the vowels
- Int reversal
- Pyramid generator
- Steps generator
- Fizz Buzz
Warrior
- Spiral matrix generator
- Int queue
- Generic queue
- Combine two queues
- Two stack queue
- Int stack
- Generic stack
- Bubble sort
- Selection sort
- Square equals
- Sum zero
- Digit frequency
- Get duplicated arguments
- Find pair with target average
- Tree traversal
- Tree level width
- Binary search tree (insert)
- Binary search tree (validate)
- Any callback
- Flatten
Commander
- List chunking
- Linked list
- Linked list midpointu
- Circular check
- Linked list take n-th element from last
- Is sub string
- Merge sort
- Fibonacci
- Fibonacci with recursive cache
- Max sub list sum
- Min sub list length
- Subtract
- Data structures explained series
- JavaScript Algorithms and Data Structures Masterclass
- The Coding Interview Bootcamp Algorithms + Data Structures
- Master the Coding Interview Data Structures + Algorithms
If you think something is incorrect, you have found a new puzzle, have a better solution or simply you want to add new puzzle please create PR or open a new issue.