LeetCode Problem

How to Solve Valid Number

This problem requires analyzing each character of the input string to ensure it fits the valid number pattern. The solution focuses on handling optional signs, decimal points, and exponential notation while rejecting invalid sequences. Using a string-driven approach prevents common parsing mistakes and ensures accurate validation across all edge cases.

GhostInterview Help

Need help with Valid Number without spending extra time grinding it?

GhostInterview can read Valid Number from a screenshot, generate the answer path, explain the complexity, and support solver-first interview workflows when you need direct help fast.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.

Problem #65String-driven solution strategyReviewed 2026-03-08
Difficulty
Hard
Primary pattern
String-driven solution strategy
Topics
Answer-first problem summary
Step-by-step approach and complexity
GhostInterview solver workflow

This problem requires analyzing each character of the input string to ensure it fits the valid number pattern. The solution focuses on handling optional signs, decimal points, and exponential notation while rejecting invalid sequences. Using a string-driven approach prevents common parsing mistakes and ensures accurate validation across all edge cases.

Problem Statement

Given a string s, determine whether it represents a valid number according to standard numerical formats. Valid numbers may include optional signs, decimal points, and exponential notation but must follow precise ordering rules.

For example, strings such as "2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", and "-123.456e789" are valid, while "abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", and "95a54e53" are invalid.

Examples

Example 1

Input: s = "0"

Output: true

Example details omitted.

Example 2

Input: s = "e"

Output: false

Example details omitted.

Example 3

Input: s = "."

Output: false

Example details omitted.

Constraints

  • 1 <= s.length <= 20
  • s consists of only English letters (both uppercase and lowercase), digits (0-9), plus '+', minus '-', or dot '.'.

Solution Approach

Character-by-Character Validation

Scan the string from start to finish, checking each character for digits, decimal points, optional signs, or 'e'/'E'. Track whether a decimal or exponent has appeared to prevent invalid sequences, rejecting any unexpected characters immediately.

Handle Edge Cases and Boundaries

Special cases include strings starting or ending with a dot, strings with multiple signs, and exponents without numeric bases or powers. Explicitly handle empty numeric parts and misplaced symbols to ensure all invalid forms are caught.

Boolean Flags and State Tracking

Use flags to track the presence of digits, decimal points, and exponent sections. After scanning, validate that the final state represents a legitimate number, ensuring no trailing invalid characters exist and all required components are correctly positioned.

Complexity Analysis

MetricValue
TimeDepends on the final approach
SpaceDepends on the final approach

Time complexity depends on scanning each character once, making it O(n) where n is the length of the string. Space complexity is O(1) since only a few flags are maintained, independent of input size.

What Interviewers Usually Probe

  • Check for correct handling of leading and trailing spaces, plus/minus signs, and dots.
  • Expect edge cases where 'e' is present without proper numeric bases or exponents.
  • Watch for multiple dots or misplaced signs that violate the valid number format.

Common Pitfalls or Variants

Common pitfalls

  • Assuming any digit sequence is valid without validating decimal and exponent placement.
  • Failing to reject strings with multiple signs or multiple dots.
  • Overlooking cases where the exponent part is missing digits or improperly formatted.

Follow-up variants

  • Validate numbers allowing only integers, disallowing decimal points and exponents.
  • Check for scientific notation exclusively with 'E' or 'e' but reject plain decimals.
  • Allow whitespace trimming at the beginning and end while maintaining numeric validation rules.

How GhostInterview Helps

  • Automatically detects invalid characters or misplaced symbols and flags errors in real time.
  • Tracks decimal, exponent, and digit presence to guide correct parsing decisions efficiently.
  • Highlights edge cases where multiple signs or missing numeric parts would cause failures.

Topic Pages

FAQ

What is the best way to approach Valid Number with a string-driven strategy?

Focus on scanning each character sequentially while tracking digits, decimal points, signs, and exponents, validating the state at each step.

Does a string with multiple dots or signs ever qualify as a valid number?

No, multiple dots or conflicting signs violate the numeric format and must be rejected.

How should exponent notation be handled?

Ensure the exponent 'e' or 'E' is preceded and followed by valid digits, optionally with a sign, and appears only once.

Are strings like '.' or 'e' considered valid?

No, a standalone dot or exponent without digits is invalid according to the number validation rules.

What is the time complexity of checking if a string is a valid number?

The time complexity is O(n), where n is the length of the string, since each character is examined exactly once.

GhostInterview Solver

Need direct help with Valid Number instead of spending more time grinding it?

Download GhostInterview when you want a LeetCode solver, not another long practice loop. Capture Valid Number from a screenshot, get the answer path and complexity, and use supported stealth workflows that stay outside captured layers.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.