Skip to main content
LeetCode 8, Medium. Topics: String. View on LeetCode. Generate this problem as a practice environment: tested reference solution, 13 parametrized pytest cases, and a playground notebook:

Problem

Implement the my_atoi(string s) function, which converts a string to a 32-bit signed integer. The algorithm for my_atoi(string s) is as follows:
  1. Whitespace: Ignore any leading whitespace ( ).
  2. Signedness: Determine the sign by checking if the next character is - or +, assuming positivity if neither present.
  3. Conversion: Read the integer by skipping leading zeros until a non-digit character is encountered or the end of the string is reached. If no digits were read, then the result is 0.
  4. Rounding: If the integer is out of the 32-bit signed integer range [-2^31, 2^31 - 1], then round the integer to remain in the range. Specifically, integers less than -2^31 should be rounded to -2^31, and integers greater than 2^31 - 1 should be rounded to 2^31 - 1.
Return the integer as the final result.

Examples

Explanation:
Explanation:
Explanation:
Explanation:
Explanation: Reading stops at the first non-digit character ‘w’.

Constraints

  • 0 <= s.length <= 200
  • s consists of English letters (lower-case and upper-case), digits (0-9), , +, -, and ..

Solution

Reference implementation from solution.py on GitHub, full suite in test_solution.py:

Complexity

Tags

Grind 75, Grind.
Last modified on August 25, 2026