LeetcodeMar 17, 2026

String to Integer (atoi)

Hazrat Ali

Leetcode

The algorithm for myAtoi(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 [-231, 231 - 1], then round the integer to remain in the range. Specifically, integers less than -231 should be rounded to -231, and integers greater than 231 - 1 should be rounded to 231 - 1.

Return the integer as the final result.

 

Example 1:

Input: s = "42"

Output: 42

Solution

var myAtoi = function(s) {
    let i = 0;
    let n = s.length;
   
    while (i < n && s[i] === ' ') i++;

    let sign = 1;
    if (i < n && (s[i] === '+' || s[i] === '-')) {
        if (s[i] === '-') sign = -1;
        i++;
    }

    let num = 0;
    const INT_MAX = 2147483647;
    const INT_MIN = -2147483648;

    while (i < n && s[i] >= '0' && s[i] <= '9') {
        let digit = s[i] - '0';

        if (num > Math.floor(INT_MAX / 10) ||
           (num === Math.floor(INT_MAX / 10) && digit > 7)) {
            return sign === 1 ? INT_MAX : INT_MIN;
        }

        num = num * 10 + digit;
        i++;
    }

    return num * sign;
};

 

 

Comments