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;
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容