An Interest In:
Web News this Week
- April 19, 2024
- April 18, 2024
- April 17, 2024
- April 16, 2024
- April 15, 2024
- April 14, 2024
- April 13, 2024
Daily Challenge 282 - Car License Plate Calculator
The car registering system of a city assigns two types of numbers:
The Customer ID - it's a natural number between 0 and 17558423 inclusively, which is assigned to the car buyers in the following order: the first customer receives ID 0, the second customer receives ID 1, the third customer receives ID 2, and so on.
Number Plate - assigned to the car and contains the series ( three Latin letters from a to z) and the serial number (three digits from 0 to 9).
Example: aaa001. Each Number Plate is related to the given Customer ID. For example: Number Plate aaa000
is related to Customer ID 0; Number Plate aaa001
is related to Customer ID 1, and so on.
Write a function findPlate
which takes the Customer ID as an argument, calculates the Number Plate corresponding to this ID and returns it as a string, considering the following:
The serial numbers start at 001, end at 999.
The series change once the serial number hits 999. The left letter changes first, alphabetically:
aaa001...aaa999, baa001...baa999,...... , zaa001...zaa999
As soon as the left letter reaches z and the series z** has moved through all the serial numbers the middle letter changes alphabetically as follows:
aba001...aba999, bba001... bba999, cba001...cba999, ......, zba001...zba999, aca001...aca999, bca001...bca999,
As soon as the middle letter and the left letter both reaches z and the series zz* has moved through all its serial numbers, the right letter changes alphabetically as follows:
aab001...aab999, bab001...bab999, cab001...cab999, ......, zab001...zab999, abb001...abb999, bbb001...bbb999, cbb001...cbb999, ......,zbb001...zbb999, acb001...acb999, ......, zzz001...zzz999
When all the possible series and their serial numbers are exhausted the last Number Plate will be zzz999.
Notes:
- No spaces are allowed between the characters in the returned string. So 'abc123' is valid, but 'a b c 1 2 3' is not.
- If the serial number has less than 3 digits, the missing places should be filled with zeroes.Example: serial number '12' should equal '012'; serial number '4' should equal '004'.Customer IDs starts with 0.
Tests
findPlate(3)
findPlate(1487)
findplate(17558423)
findPlate(234567)
Good luck!
This challenge comes from William_2004 on CodeWars. Thank you to CodeWars, who has licensed redistribution of this challenge under the 2-Clause BSD License!
Want to propose a challenge idea for a future post? Email [email protected] with your suggestions!
Original Link: https://dev.to/thepracticaldev/daily-challenge-282-car-license-plate-calculator-5cbh
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To