Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
August 15, 2020 01:52 pm GMT

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To