DEV Community 👩‍💻👨‍💻

Achilonu Chinwendu Faustina
Achilonu Chinwendu Faustina

Posted on

DAY 10 OF CODE CHALLENGE

VALID NUMBER

DESCRIPTION OF QUESTION

A valid number can be split up into these components (in order):

A decimal number or an integer.
(Optional) An 'e' or 'E', followed by an integer.
A decimal number can be split up into these components (in order):

(Optional) A sign character (either '+' or '-').
One of the following formats:
One or more digits, followed by a dot '.'.
One or more digits, followed by a dot '.', followed by one or more digits.
A dot '.', followed by one or more digits.
An integer can be split up into these components (in order):

(Optional) A sign character (either '+' or '-').
One or more digits.
For example, all the following are valid numbers: ["2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", "-123.456e789"], while the following are not valid numbers: ["abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", "95a54e53"].

Given a string x, return true if x is a valid number.

Example 1:

Input: x = "0"
Output: true
Example 2:

Input: x = "e"
Output: false
Example 3:

Input: x = "."
Output: false

PROCEDURE

  • I made list of possible error conditions and checked for each one which include:
  1. Seeing an 'e'/'E' when a number has not yet been seen or more than one exponent character ('e'/'E').

  2. When there is more than one sign or sign appearing after a decimal or number have been seen.

  3. When decimal appeared after an 'e'/'E' has been seen or more than one decimal.

  4. Appearance of any other non-number character.

  5. When the end of x is reached without active number.

  • The above were achieved by setting some boolen flags for the different things being kept on track (exp, num, dec, sign).

OUTCOME

Image description

Top comments (0)

DEV has this feature:

Settings

Go to your customization settings to nudge your home feed to show content more relevant to your developer experience level. 🛠