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:
- Whitespace: Ignore any leading whitespace (
).
- Signedness: Determine the sign by checking if the next character is
- or +, assuming positivity if neither present.
- 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.
- 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
Grind 75, Grind. Last modified on September 7, 2026