leetcode #8 String to Integer (a

2017-07-06  本文已影响0人  huntriver

Implement atoi to convert a string to an integer.

首先分析一下atoi这个函数的几个特性:

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

/**
 * @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;
};
上一篇 下一篇

猜你喜欢

热点阅读