https://github.com/codedge/coding-challenges
Some coding challenges I came across in job interviews. Solutions are in PHP and Go.
https://github.com/codedge/coding-challenges
coding-challenge coding-challenges go golang job-interviews mask ordinal-numbers php
Last synced: 5 months ago
JSON representation
Some coding challenges I came across in job interviews. Solutions are in PHP and Go.
- Host: GitHub
- URL: https://github.com/codedge/coding-challenges
- Owner: codedge
- Created: 2021-02-23T14:27:37.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-12-30T23:43:15.000Z (9 months ago)
- Last Synced: 2025-04-20T00:38:13.721Z (6 months ago)
- Topics: coding-challenge, coding-challenges, go, golang, job-interviews, mask, ordinal-numbers, php
- Language: PHP
- Homepage:
- Size: 93.8 KB
- Stars: 14
- Watchers: 2
- Forks: 3
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
A repository of coding challenges/tasks I came across in various job interviews.
I mostly do backend programming in Go and PHP, so here you can find some solutions.The solutions to the tasks do not fulfill to be the shortest, fastest or cleanest solutions.
## Tasks
Each task should come with a solution plus some tests to verify.
### Task 1
Create a function `maskify` to mask digits of a credit card number with `#`.
**Requirements:**
- Do not mask the first digit and the last four digits
- Do not mask non-digit chars
- Do not mask if the input is less than 6
- Return '' when input is empty### Task 2
Create a function `number_to_ordinal` to create an ordinal number for a given input.
Ordinal numbers in English have something like `st`, `nd`, `rd`, etc.**Requirements:**
- Apply for number 1 to 1001... if that works any given number will do ;-)
### Task 3
Create a calculator for [Reverse Polish Notation](https://en.wikipedia.org/wiki/Reverse_Polish_notation).
Write a `calculate` function that accepts an input and returns the result of the operation.**Requirements:**
- Support the mathematical operations for `+`, `-`, `*` and `/`
- Check for invalid syntax, like `2 3+`. There is a space missing.
- Return 0 (integer) when nothing is entered
- Return the numeric value when no operand is given, like `1 2 3.5` return `3.5`### Task 4
Given you have an array of numbers, you move inside the array by the value of the current element.
Write a function `jump_out_of_array` that outputs- the amount of jumps until you jump out of the array
- `-1` when you reach the end of the array but do not jump out**Requirements:**
- Array size is indefinite
- Array elements are integers, positive and negative**Example:**
Given an array of `A[2, 3, -1, 1, 6, 4]`.

- Jump 1: `A[0]` + `2` = `A[2]`
- Jump 2: `A[2]` + `(-1)` = `A[1]`
- Jump 3: `A[1]` + `3` = `A[4]`
- Jump 4: `A[4]` + `6` = out of rangeSo the result is `4`, you need `4` jumps to jump out of the array.
### Task 5
Find the k-complement pairs in an array of a given number. Write a function `k_complement` that that outputs the amount
of pairs.**Requirements:**
_Do not_ use nested loops to solve this problem, because of a time complexity of the loop solution.
[Check this thread](https://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm) to see what time complexity of an algorithm means.**Example:**
- `A[0]` + `A[8]` = `1` + `5` = `6`
- `A[1]` + `A[6]` = `8` + `-2` = `6`
- `A[4]` + `A[8]` = `1` + `5` = `6`
- `A[5]` + `A[5]` = `3` + `3` = `6`
- `A[5]` + `A[5]` = `3` + `3` = `6`
- `A[6]` + `A[1]` = `-2` + `8` = `6`
- `A[8]` + `A[0]` = `5` + `1` = `6`The result here is `7`.
### Task 6
Calculate the [Fibonacci number](https://en.wikipedia.org/wiki/Fibonacci_number) of a given number
and return the last `6` non-zero numbers.**Requirements:**
- Use a recursive approach instead of looping through.
- Throw an exception when passing in a negative number**Example:**
- `F8` = `21`, return `21`
- `F38` = `39088169`, return `88169`### Task 7
Given the follwing function you should suggest what could be improved. There are no other documents explaining why this function has been written or what the purpose is/should be.
**Example in python**
```python
def multiply(x, y):
if y > 0:
return (1 + multiply(x, y-1))
else:
return 0
```**Possible considerations:**
- Does the function really _multiply_ two values?
- Could the in-built multiply function be used?
- Is a recursive function the way to go?
- What can happen when using this with big numbers, f. ex. > 1.000.000?
- Type hints### Task 8
Do an in-place mirroring of a one dimensional array. In-place switching is key here as the input array can be very big
and no additional memory should be occupied - see [Space Complexity](https://www.geeksforgeeks.org/g-fact-86/).**Requirements:**
- In-place mirroring
- Handle array with even and odd amount of items
- Do not use the [`array_reverse`](https://www.php.net/manual/de/function.array-reverse.php) function in PHP**Example:**
- Even amount: `[8,5,1,4]` -> `[4,1,5,8]`
- Odd amount: `[6,2,7,9,3]` -> `[3,9,7,2,6]`## Contribute
Feel free to contribute. Use the issue list to propose new tasks or open PRs. Just provide proper tests
and description and requirements for the tasks.