Valid Number

Hard · Math & Number Theory · about 25 minutes

Asked at LinkedIn, Meta, Google, Amazon.

Decide whether the string s spells a number under these rules:

  • an integer is an optional '+' or '-' followed by one or more digits;
  • a decimal is an optional sign followed by digits with a dot somewhere: before them (.5), after them

(5.) or between them (5.25), with at least one digit in total;

  • either form may end with an exponent: an 'e' or 'E' followed by an integer.

Accepted, for example: "7", "0042", "-0.5", "+6.02", "8.", ".25", "1e9", "-3E7", "12.5e-3". Rejected: "xyz", "7e", "e7", "6e1.5", "++2", "+-1", "12b3e4", ".".