PHP Interview Exercises ·
[NO LONGER MAINTAINED]: The exercises should still be useful when preparing for a PHP interview, but I'm not able to maintain the repository.
A number of exercises to practice whiteboard interview questions 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.
Install
- Clone this repository.
- Run
composer install
.
Usage
- 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.
Problem Solving Patterns
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...
Suggested Path
- FizzBuzz
- Numbers
- Reverse
- Palindrome
- MaxChar
- ArrayGroup
- Capitalize
- Vowels
- Anagram
- MaxSubArraySum
- Search
- Ladder
- Pyramid
- Spiral
- Fibonacci
- Events
- Queue
- Stack
- QueueFromStacks
- Sort
- LinkedList
- Tree
- BinarySearchTree
- MaxHeap
Aside
This Exercise Counter is made with Shields IO, Axios, GitHub GraphQL and Netlify Functions.
Contributing
Do you have an idea for an exercise or a better solution? Submit a PR!
Contributors
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!