leetcode #8 String to Integer (atoi)

Implement atoi to convert a string to an integer.

  • 题目大意
    题目描述非常简单,就是实现c语言中的atoi 函数。这个函数是将一个字符串转成一个int 整数。
首先分析一下atoi这个函数的几个特性:
  • 该函数会跳过所有该字符串开头的空格
  • 该函数会忽略第一个非数字字符后面的所有字符。
  • 返回的是一个int 类型 (-2147483648 ~ 2147483647)

有了以上分析,代码就非常简单了

/**
 * @param {string} str
 * @return {number}
 */
var myAtoi = function (str) {
    let i = 0;
    let ans = 0;
    while (str[i] === ' ' && i < str.length) {  //忽略所有开头的空格
        i++;
    }
    if (i >= str.length) return ans;
    let sign = 1;
    if (str[i] === '+') {  //判断符号
        sign = 1;
        i++;
    }
    else {
        if (str[i] === '-') {
            sign = -1;
            i++;
        }
    }
    while (i < str.length && str[i] >= '0' && str[i] <= '9') {  //遍历所有数字位
        ans = +str[i++] + ans * 10;
    }

    ans *= sign;
    ans = ans > 2147483647 ? 2147483647 : ans;  //使结果在整形范围内
    ans = ans < -2147483648 ? -2147483648 : ans;
    return ans;
};

你可能感兴趣的:(leetcode #8 String to Integer (atoi))