A number of exercises to practice whiteboard interview questions and which gives you an edge in PHP.
Inside exercises
directory, you can find folders containing the exercises and completed versions.
There are multiple ways to solve each problem, feel free to experiment.
If you are stuck don't be afraid to search online for a pseudo-code algorithm or a solution. Even by copying and later analyzing the solution you will gain lots of experience in problem solving.
Also check out the tests and see what results are expected. Playing around with Xdebug is a plus.
It is useful to actually see how algorithms manipulate data. Visualgo is a good resource for that.
- Clone this repository.
- Run
composer install
.
- Pick an exercise for example
exercises/ReverseString
and insidetests/ReverseString/ReverseStringTest.php
deletestatic::markTestSkipped();
. - Run
./vendor/bin/phpunit
or./vendor/bin/phpunit-watcher watch
to start tests. - Write implementation.
This will allow you to write code and be sure that the solution is correct.
To solve certain problems in the most efficient way many algorithmic patterns are available. Such as:
- Frequency Counter
- Multiple Pointers
- Sliding Window
- Divide and Conquer
- Backtracking
And more...
- FizzBuzz
- Numbers
- Reverse
- Palindrome
- MaxChar
- ArrayGroup
- Capitalize
- Vowels
- Anagram
- MaxSubArraySum
- Search
- Ladder
- Pyramid
- Spiral
- Fibonacci
- Events
- Queue
- Stack
- QueueFromStacks
- Sort
- LinkedList
- Tree
- BinarySearchTree
- MaxHeap
This Exercise Counter is made with Shields IO, Axios, GitHub GraphQL and Netlify Functions.
Do you have an idea for an exercise or a better solution? Submit a PR!
Thanks goes to these wonderful people (emoji key):
Anton Ždanov 💻 📖 |
ahmed 💻 |
Roman Yepanchenko 🐛 |
Fathom 🐛 💻 |
Alexander Katynia 🐛 |
kevin-schmitt 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!